SSH авторизация по ключу через PuTTY
На сегодняшний день набирает обороты практика аутентификации к SSH-серверу по ключу, в этом есть несколько преимуществ:
- Удобство в использовании. У вас может быть несколько серверов и один ключ, не нужно всякий раз вводить пароль от нужного сервера, что сэкономит время.
- Это безопасно. Вы сможете отключить аутентификацию по паролю и ssh будет защищён от брутфорса.
В это статье мы настроим SSH авторизации на сервере CentOS 7 по ключу, и настроем подключение через ключ утилиту PuTTY.
Генерация ключа
Для генерации ключа будем использовать утилиту PuTTYgen. После запуска выбираем тип ключа для генерации - SSH-2 RSA, и длину ключа - 2048 бит. После чего нажимаем Generate и крутим мышкой по окну пока не закончится генерация ключа.
- Key comment - комментарий к ключу.
- Key passphrase - парольная фраза к приватному ключу. (Не обязательно к заполнению)
- Confirm passphrase — подтверждение парольной фразы.
Если вы хотите обезопасить себя по максимальному вы можете задать пароль для защиты приватного ключа в полях Key Passphrase и Confirm Passphrase. Но при каждом входе у вас будет запрашивать пароль который вы ввели. Это обезопасит вас если ваш приватный ключ будет похищен.
Далее сохраняем public key и private key. Приватный ключ мы будем использовать для подключения к серверу, а вот публичный ключ надо будет передать на удаленный сервер которому мы будем подключаться.
Обратите внимания на то как был сгенерирован ваш публичный ключ.
Лично у меня он был сгенерирован не совсем верно, вот пример public_key в дальнейшем при подключении через PuTTY с таким ключом могут возникнуть ошибка Server refused our key.
Для того чтобы избежать подобной ошибки правим файл с публичным ключом, пример правильного ключа.
Установка публичного ключа на сервере
Далее необходимо скопировать наш публичный ключ на сервер. Мы воспользуемся для передачи на сервер ключа утилитой PSFTP, но вам ничего не мешает его передать через любой FTP клиент.
# Подключаемся к нашему серверу open 185.65.247.114 # Далее стандартная процедура авторизации # После успешной авторизации пиши: put public_key.pub /tmp/public_key.pub
Ключ с копировался, теперь нужно добавить его в ~/.ssh/authorized_keys. Далее логинемся еще раз по паролю, через PuTTY и выполняем:
mkdir ~/.ssh chmod 0700 ~/.ssh cat /tmp/public_key.pub > ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys rm -f /tmp/public_key.pub
Далее нужно проверить настройки нашего SSH сервера, сами настройки лежат в файле /etc/ssh/sshd_config:
# Путь до публичного ключа в домашней директиве. AuthorizedKeysFile .ssh/authorized_keys # Разрешить аутентификацию по ключу RSAAuthentication yes PubkeyAuthentication yes
Теперь нам надо будет перезапустить SSH сервер:
service sshd restart
Теперь мы можем подключиться к серверу по ключу или паролю.
Но мы можем вообще запретить подключатся к SSH серверу по паролю указав в файле /etc/ssh/sshd_config.
PasswordAuthentication no
После чего не забываем заново перезапустить SSH сервер.
Настройка и подключения PuTTY
Теперь все что нам осталась это создать новый сеанс и настроить его подключения к SSH серверу по ключу.
Создаем новый сеанс пиши на IP Адрес к серверу.
Далее, мы выбираем меню категорию SSH и там выберем под категорию Auth
В поле Private key file for authentication загружаем наш приватный ключ.
Далее переходим обратно в раздел Session и сохраняем нашу сессию для того чтобы следующий раз не заполнять все эти поля.
Остаётся только проверить правильность аутентификации к SSH серверу по ключу. Запустите PuTTY и подключитесь к своему серверу. Если вы при создании, ключа заполнили поле Key Passphrase и Confirm Passphrase то вас запросит вести этот пароль. Если же всё настроено неправильно, то будет выдано сообщение об ошибке и предложено ввести пароль.