Аутентификация по ключу

14 ноября 2012 Юникс

Наиболее очевидные преимущества аутентификации по ключам — это отсутствие необходимости запоминать и записывать пароли, использование ssh в скриптах, безопасность.

cat ~/.ssh/id_rsa.pub | ssh login@server "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
ssh-copy-id  login@server

http://www.commandlinefu.com/commands/view/188/copy-your-ssh-public-key-to-a-server-from-a-machine-that-doesnt-have-ssh-copy-id


Для генерации ключей нужно выполнить

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