Наиболее очевидные преимущества аутентификации по ключам — это отсутствие необходимости запоминать и записывать пароли, использование ssh в скриптах, безопасность.
cat ~/.ssh/id_rsa.pub | ssh login@server "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
ssh-copy-id login@server
Для генерации ключей нужно выполнить
ssh-keygen
Оболочка сообщит, где сохранены сгенерированные ключи
Your identification has been saved in ~/.ssh/id_rsa Your public key has been saved in ~/.ssh/id_rsa.pub
Копируем публичный ключ на удалённый сервер
scp ./.ssh/id_rsa.pub login@server:id_rsa.pub
Далее заходим на указанный сервер
ssh login@server
После чего выполняем последовательность команд, складывающую ключ, куда надо
mkdir -p .ssh chmod 700 .ssh cd .ssh cat ../id_rsa.pub >> authorized_keys cat authorized_keys chmod 600 authorized_keys rm ../id_rsa.pub
Оставаясь на удаленном хосте, откройте конфигурационный файл SSH:
sudo nano /etc/ssh/sshd_config
Убедитесь, что следующие атрибуты имеют корректные значения:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
И последнее, перезапустите сервер SSH на удаленном хосте:
sudo /etc/init.d/ssh reload
Теперь можно подключаться к серверу без ввода пароля.
http://www.opennet.ru/base/sec/ssh_pubkey_auth.txt.html
http://rus-linux.net/MyLDP/sec/generiruem-kluchi-ssh.html
http://www.xakep.ru/magazine/xa/073/104/2.asp