Настройка SSH-ключей
SSH-ключи заменяют вход по паролю криптографической парой ключей. Приватный ключ остаётся на вашей машине; публичный ключ размещается на сервере.
Генерация пары ключей
Заголовок раздела «Генерация пары ключей»На вашей локальной машине:
ssh-keygen -t ed25519 -C "ваш@email.com"-t ed25519— современный компактный алгоритм (предпочтительнее RSA)-C— необязательная метка для идентификации ключа
При запросе выберите путь (по умолчанию ~/.ssh/id_ed25519) и необязательную парольную фразу.
Копирование публичного ключа на сервер
Заголовок раздела «Копирование публичного ключа на сервер»ssh-copy-id -i ~/.ssh/id_ed25519.pub пользователь@ip-вашего-сервераИли добавьте вручную:
cat ~/.ssh/id_ed25519.pub | ssh пользователь@ip-вашего-сервера "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Проверка подключения
Заголовок раздела «Проверка подключения»ssh пользователь@ip-вашего-сервераВы должны войти без запроса пароля.
Файл конфигурации SSH
Заголовок раздела «Файл конфигурации SSH»Избегайте ввода длинных имён хостов, добавив запись в ~/.ssh/config:
Host мойсервер HostName ip-вашего-сервера User вашпользователь IdentityFile ~/.ssh/id_ed25519Теперь можно подключаться просто:
ssh мойсерверОтключение входа по паролю (рекомендуется)
Заголовок раздела «Отключение входа по паролю (рекомендуется)»После того как вход по ключу заработал, отключите парольную аутентификацию на сервере.
Отредактируйте /etc/ssh/sshd_config:
PasswordAuthentication noPubkeyAuthentication yesПерезапустите службу SSH:
sudo systemctl restart sshdУбедитесь, что ключ работает, прежде чем закрывать текущую сессию.
Распространённые проблемы
Заголовок раздела «Распространённые проблемы»| Проблема | Вероятная причина |
|---|---|
Permission denied (publickey) | Публичный ключ отсутствует в authorized_keys или неверный пользователь |
Warning: unprotected private key | Исправьте командой chmod 600 ~/.ssh/id_ed25519 |
Connection refused | SSH не запущен или неверный порт — проверьте sudo systemctl status sshd |