Иногда бывает так, что надо что бы при входе на сервер, не требовалось набирать пароль, но надо, что бы при этом не уменьшалась безопасность ssh. В пакете ssh обязательно присутствует утилита ssh-keygen, которая генерирует пару ключей: один публичный, который вы можете разместить на том сервере на который необходимо заходить по ssh без пароля(id_rsa.pub) и приватный(id_rsa).
ssh-keygen достаточно запустить без всяких ключей что бы сгенерировались ключи для протокола ssh2, на данный момент времени самый безопасный протокол.
Предшествует генерации ключей небольшой диалог:
1. Enter file in which to save the key (/home/user/.ssh/id_rsa): — предлагается изменить имя по умолчанию файла ключа, как правило не надо менять
2. Enter passphrase (empty for no passphrase): — предлагается ввести ключевую фразу, дополнительную защиту авторизации по ключу. В том случае если злоумышленник похитит ключ, без ключевой фразы он не сможет им воспользоваться. Если мы оставим эту строку пустой — защита ключа будет отключена.
3. Enter same passphrase again: — просят повторить ключевую фразу
На этом вопросы окончены, ssh-keygen выводит фингерпринт ключа и в домашнем каталоге, в подкаталоге .ssh размещаются файлы с ключами.
Теперь id_rsa.pub необходимо скопировать на тот хост на который вы будете заходить без пароля и сохранить его в домашнем каталоге в подкаталог .ssh в файл authorized_keys, в этом файле может находится несколько публичных ключей, по тому количеству приватных ключей — которое у вас есть.
Побочным эффектом, на который стоит обратить внимание всем системным администраторам, является то что даже если вы заменили кому нибудь пароль(поставили звезду в master.passwd) авторизация по ключу все равно будет работать.
Я часто использую ключи для выхода из сомнительных мест, там где кей логгером могут снять мой пароль, а ключик достаточно удалить по окончании работы и на его месте создать пустой файл.