SSH-ключи (Secure Shell ключи) — это пара криптографических ключей, используемых для аутентификации при подключении к удалённым серверам по протоколу SSH. В контексте ISPmanager 6, панели управления для веб-хостинга, SSH-ключи позволяют безопасно подключаться к серверу без необходимости вводить пароль.
– Приватный ключ: хранится на вашем компьютере и не должен передаваться никому.
– Публичный ключ: размещается на сервере в файле ~/.ssh/authorized_keys для конкретного пользователя.
Использование SSH-ключей более безопасно, чем аутентификация по паролю, так как даже если кто-то перехватит соединение, ему не удастся получить доступ к вашему серверу без приватного ключа. После настройки SSH-ключей вам не нужно вводить пароль при каждом подключении к серверу, что упрощает процесс работы.
Для этого используйте команду ssh-keygen в терминале для генерации пары ключей. Можно просто нажать Enter, чтобы использовать значения по умолчанию.
Используйте SSH-клиент для подключения к вашему серверу с использованием приватного ключа.
Симптоматика проблемы простая - во время попытки подключиться к серверу по SSH подключение прерывается запросом пароля.
Причин не так много. Чаще всего проблема кроется в:
Дальше поговорим о том, как решить данную проблему.
Проверьте настройки SSH на сервере в файле /etc/ssh/sshd_config. Убедитесь, что следующие строки не закомментированы и установлены в нужные значения:
PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys
После потребуется перезапустить службу sshd:
sudo systemctl restart sshd
Перезапуск службы sshd, в случае некорректной настройки, может вызвать потерю доступа к серверу. Перед перезапуском службы, нужно проверить альтернативный доступ к серверу. Это можно сделать с помощью интерфейса на стороне провайдера.
В первую очередь проверьте, что ваш публичный ключ в файле по пути ~/.ssh/authorized_keys соответствует одному из форматов, о которых расскажем ниже.
Формат основан на алгоритме RSA (Rivest-Shamir-Adleman), который является асимметричным криптографическим методом.
Выглядит так:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr... ИМЯ_ПОЛЬЗОВАТЕЛЯ@АДРЕС_СЕРВЕРА
Безопасность RSA основывается на сложности факторизации больших чисел. Чем больше размер ключа (обычно 2048 или 4096 бит), тем сложнее его взломать.
SSH-DSS (Secure Shell Digital Signature Standard) — это один из алгоритмов, используемых для аутентификации в протоколе SSH
Их вид:
ssh-dss AAAAB3NzaC1yc...2EAAAABIwAAAQEAr ИМЯ_ПОЛЬЗОВАТЕЛЯ@АДРЕС_СЕРВЕРА
Если вам нужно создать ключи формата SSH-DSS, вы можете использовать утилиту ssh-keygen, которая входит в состав OpenSSH.
Вам нужно проверить, что файл по пути ~/.ssh/authorized_keys имеет права 600:
ls -lah ~/.ssh/authorized_keys -rw------- 1 root root 2.4K Nov 27 18:00 /root/.ssh/authorized_keys
Если права некорректные, измените их с помощью команды:
chmod 600 ~/.ssh/authorized_keys
Также проверьте права на директорию ~/.ssh/ - она должна иметь права 700:
ls -lah ~/.sshdrwx------ 2 root root 4.0K Nov 27 18:00
Если права некорректные, измените их командой:
chmod 700 ~/.ssh