понедельник, 25 июля 2011 г.

SSH авторизация по ключам

Генерим ключи
ssh-keygen -t rsa -b 4096
ssh-keygen создаст пару публичного и приватного (зашифрованного введенным паролем) ключей, используемых для аутентификации. Приватный ключ сохраняется в ~/.ssh/id_rsa, а публичный в ~/.ssh/id_rsa.pub.
Для включения аутентификации по ключам публичный ключ должен быть помещен в файл ~/.ssh/authorized_keys на удаленном компьютере.

Идём на удалённую машину
ssh user@192.168.1.100
mkdir ~/.ssh
Возвращаемся
exit

Копируем ПУБЛИЧНЫЙ! ключ id_rsa.pub на удаленную машину
cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.100 "cat - >> ~/.ssh/authorized_keys"
Файл authorized_keys может содержать несколько публичных ключей, допустимых для данного пользователя - их необходимо поместить в файл по порядку.
После этих операций, имея секретный ключ, можно входить на сервер, где размещен ваш публичный ключ, причем под тем пользователем, в чьем домашнем каталоге данный ключ находится. Пароля удаленного пользователя не требуется, необходимо только знать пароль расшифровки секретного ключа.

Проверяем, включена ли авторизация по ключам - в файле /etc/ssh/sshd_config должно быть раскоментировано:
# разрешаем использование RSA ключей
RSAAuthentication yes
# разрешаем авторизацию при помощи ключей
PubkeyAuthentication yes
# Путь где будут находиться ключи, с которыми можно соединяться.
AuthorizedKeysFile .ssh/authorized_keys

Если на сервере вообще хотим запретить авторизацию по паролям, выставляем параметр в /etc/ssh/sshd_config:
PasswordAuthentication no 
PermitEmptyPasswords no 

После изменения sshd_config нужно перезапустить sshd
/etc/rc.d/sshd restart

Если при создании ключа мы задали пароль, то при первом подключении его нужно будет ввести.

Если что-то не работает - смотрим /var/log/auth.log

Комментариев нет:

Отправить комментарий