Введение

SSH-ключей (Secure Shell) — это стандартизированный протокол для безопасного удалённого управления серверами. В этом руководстве мы рассмотрим следующие темы:

  • Генерация SSH-ключей на Linux и Windows
  • Настройка безопасного доступа
  • Устранение наиболее распространенных ошибок

1. Создание SSH-ключей на разных операционных системах

🔑 На Linux и macOS

Генерация ключа Ed25519:

ssh-keygen -t ed25519 -C "your_email@example.com"

Ключ сохранится в следующих местах:

  • Приватный ключ: ~/.ssh/id_ed25519
  • Публичный ключ: ~/.ssh/id_ed25519.pub

Для устаревшего, но всё ещё поддерживаемого алгоритма RSA:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

🖥️ На Windows

Через PowerShell:
ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\win_key"
Через PuTTY:
  1. Установите PuTTY и PuTTYgen.
  2. В PuTTYgen выберите алгоритм «Ed25519» и нажмите «Generate».
  3. Сохраните приватный ключ .ppk и публичный ключ.

2. Перенос ключей на сервер

Для Linux и macOS

Используйте команду ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip

Для Windows

  1. Скопируйте содержимое вашего публичного ключа win_key.pub.
  2. На сервере создайте папку .ssh и добавьте ключ:
mkdir -p ~/.ssh
echo "your_public_key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3. Настройка безопасности SSH

Оптимальная конфигурация в /etc/ssh/sshd_config:

Port 2222                    # Используйте нестандартный порт
PermitRootLogin no            
PasswordAuthentication no     
PubkeyAuthentication yes      
AllowUsers your_user          # Ограничьте доступ белым списком пользователей

Дополнительные меры безопасности:

  • Fail2ban — защита от атак методом подбора паролей.
  • UFW/iptables — ограничение доступа по IP-адресам:
sudo ufw allow from 192.168.1.100 to any port 2222

4. Распространённые ошибки и их решение

❌ «Server refused public-key signature»

Проверьте права доступа:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Убедитесь, что ключ действительно добавлен в authorized_keys.

❌ Парольная аутентификация работает, несмотря на запрет

Проверьте наличие конфликтующих настроек:

sudo grep -r "PasswordAuthentication" /etc/ssh/

Отключите использование PAM:

UsePAM no

5. Сравнение методов аутентификации

МетодБезопасностьУдобствоРекомендация
ПаролиНизкаяВысокое❌ Запрещено
RSA-ключ (4096 бит)СредняяСреднее⚠️ Только для старых систем
Ed25519ВысокаяВысокое✅ Рекомендовано
2FA (Google Auth)МаксимальнаяНизкоеДля критически важных серверов

Пример правильной настройки прав доступа

Правильное управление правами доступа:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

Заключение

Теперь вы умеете:

  • Генерировать SSH-ключи на любой операционной системе
  • Настраивать безопасный доступ через SSH
  • Решать распространенные проблемы

Полезные ресурсы:

  • Официальная документация OpenSSH
  • Руководство по использованию PuTTY

От root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *