Прозрачная 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
указываем:
PasswordAuthentication no
ChallengeResponseAuthentication no
После внесения изменений перезапускаем SSH:
sudo systemctl restart ssh
Обсуждение
Нет комментариев.