Настройка PuTTY для аутентификации по публичному ключу (без пароля) на SSH сервере

Работая со многими серверами с одного компа порой начинаешь замечать, что вводить пароль каждый раз как-то напряжно. Хочется, чтобы щёлкнул и вошёл. И это есть возможно, благодаря механизму публичных и приватных ключей SSH. Но перед тем как читать дальше запомните важную вещь: безпарольная авторизация образует брешь в безопасности всей системы, поэтому рекомендуется over 9000 раз подумать перед тем как настраивать это. Рекомендуется такую авторизацию применять только на компе личного пользования, для уверенности что посторонние не получат ваш приватный ключ.

Работает это так: у Вас на компе есть приватный ключ, который очень важный в плане безорасности и его нельзя передавать третьим лицам; на сервере есть соответственный вашему приватному публичный ключ, который используется для подтверждения аутентичности. Публичный ключ не так критичен, его можно в открытую передавать и ничего страшного не случится, разве что злоумышленник разрешит Вам войти на свой сервер без пароля.

orly

Ну вот так приблизительно. Для начала нужно сгенерировать себе приватный ключ. Для этого в пакете PuTTY есть программа PuTTYgen. Запускаем её, по желанию выбираем длину и тип ключа. Нажимаем "Generate".

puttygen1

Далее просто водим мышкой по свободному пространству под полоской пока она не заполнится. От движений мыши оно берёт энтропию для генерации ключа.

puttygen2

Когда генерация завершится мы увидим публичный ключ. По желанию можно изменить коментарий к ключу в поле "Key comment". Берём и копируем содержимое поля "Public key for pasting into OpenSSH authorized keys file" в пустой текстовый файл. Перевод строки в конец не добавляем, это не нужно. Файл пока сохраняем, например с именем my_key.pub.

puttygen3

Далее нажимаем кнопку "Save private key" и выбираем место для сохранения файла с приватным ключом (расширение *.ppk). Напоминаю, что третьим лицам этот файл передавать нельзя иначе нету смысла в защите.

puttygen4

Тепер заливаем файл с публичным ключом на сервер (а сервер у нас ясное дело на Linux). Добавляем наш публичный ключ к перечню авторизированных (обычно это файл .ssh/authorized_keys в домашнем каталоге пользователя, за которого мы хотим войти).

$ cat my_key.pub >> ~/.ssh/authorized_keys
$ echo >> ~/.ssh/authorized_keys

Сервер готов. Тепер у себя в настройках PuTTY в Connection -> SSH -> Auth -> Private key file for authentication указываем путь к файлу *.ppk, в котором находится сгенерированный нами ключ.

putty

Вот собственно и всё. Максимум, что спросят при входе - это имя пользователя, но его тоже можно указать в настройках и не вводить. Тепер процесс входа значительно облегчился.

fuck-yeah