Итак, надоело мне пароль вводить, решил перевести на авторизацию по ключу. К сожалению, несмотря на преимущество в виде непередаваемого пароля и отсутствие необходимости вводить пароль с клавиатуры (т.е. избегаем перехвата кейлоггерами), есть серьезный недостаток в виде файлика ключа на госте, что сужает диапазон используемых машин только до тех, где никто больше похозяйничать не может. Поэтому до сих пор и не делал. Итак.
На клиенте из под пользователя, который будет заходить без пароля.
Код:
cd ~/.ssh
ssh-keygen -t rsa
получаются два файлика, id_rsa.pub и id_rsa. По расширению видно, что один - персональный, другой - публичный ключик. Выставляем права (обязательная процедура, без которой не заработает).
Код:
cd ~
chmod 700 ./.ssh
chmod 600 ./.ssh/id_rsa
теперь копируем id_rsa.pub на сервер, например, в директорию пользователя, под которого будем заходить без пароля.
Код:
cd ~
cat id_rsa.pub >> ./.ssh/authorized_keys
chown -R $USER:$USER ./.ssh
chmod -R 600 ./.ssh
на сервере должна быть включена авторизация по ключу (/etc/ssh/sshd_config
Код:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
после чего необходимо перечитать конфиг (я просто рестартанул sshd).
При заходе с клиента сервер сначала предложит авторизацию по ключам, если она не пройдет - предложит парольную. Наиболее частая ошибка, как я понимаю - неправильные права на файле ключей или его собственник. В этом случае будет соответствующая ругань на сервере в /var/log/messages или в auth.log (я не разношу логи в разные файлы).