SCROLL
Среднее время на прочтение: 1 мин.

Прозрачная SSH авторизация с использованием ключей шифрования

При частых подключениях по ssh к какой либо машине, либо группе машин, можно настроить прозрачное подключение, используя ключи шифрования. Данный метод подключения, не только избавит от постоянного ввода паролей при подключении по ssh, но и сделает подключения более безопасным.

При прозрачном подключении никто не сможет войти на сервер не обладая приватным ключом и кодовой фразой если она задана.

Генерация SSH ключей

Генерация ключей производится с помощью утилиты ssh-keygen, входящую в состав пакета OpenSSH.

RSA

Для генерации RSA-ключей (длина ключа по-умолчанию — 2048 бит):

ssh-keygen -t rsa

DSA

Для генерации DSA-ключей (длина ключа всегда — 1024 бита), выполняем команду:

ssh-keygen -t dsa

В процессе выполнения команды, будет предложено указать полный путь и названия файлов, в которых сохранятся генерируемые ключи. По умолчанию генерируемые ключи будут сохранены в каталоге ~/.ssh/id_*sa, id_*sa.pub

id_*saсекретный ключ (остаётся у клиента)
id_*sa.pubоткрытый ключ (передается на хосты к которым будем подключатся)

Так же можно задать использование кодовой фразы, но это не обязательно. Если задать кодовую фразу, то при каждом подключении по ssh, будет запрошен ввод кодовой фразы, что безусловно большой плюс к безопасности, на тот случай если закрытый ключ попадет к злоумышленникам.

Передача SSH ключей на хосты

Передаем публичный ключ (id_rsa.pub) на хост (прим. 192.168.1.2) к которому хотим подключатся по ключу:

ssh-copy-id -i /home/jakonda/.ssh/id_rsa.pub jakonda@192.168.1.2

Вывод:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
jakonda@192.168.1.2's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'jakonda@192.168.1.5'"
and check to make sure that only the key(s) you wanted were added.

Так же можно добавить публичный ключ в ручную, выполнив команду:

cat ~/.ssh/id_rsa.pub | ssh 192.168.1.2 -l jakonda "mkdir -p .ssh && cat >> .ssh/authorized_keys"

Дополнительные настройки (опционально)

Для большей безопасности, можно отключить аутентификацию по паролю на целевом хосте, для этого нужно в файле /etc/ssh/sshd_config указываем:

/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no

После внесения изменений перезапускаем SSH:

sudo systemctl restart ssh

Обсуждение

0 комментариев

Нет комментариев.