Итак, я пересаживаюсь на новую машину, захожу по ssh на сервер и вижу знакомую надпись:
и хз, как отвечать. откуда ж я помню какой фингерпринт был на каждом сервере. А чужих серверов в округе полно, и вбивать свой пароль неизвестной машине очень не хочется.
Можно хранить фингерпринты где-нибудь в интернете, в доступном месте. Можно завести dns-записи, но для этого нужен свой dns-сервер, ибо я еще не видел сервисов умеющих заводить их. И, наконец, можно подписать ключи серверов ключом центра авторизации, и тогда на клиентской машине нужно будет добавить только одну строчку в known_hosts и мы автоматически начинаем доверять всем своим серверам.
при этом создается обычная пара ssh ключей: ca-key (приватный) и ca-key.pub (открытый, он нам понадобится на клиентских машинах)
получаем файл /etc/ssh/ssh_host_ecdsa_key-cert.pub
перезапускаем ssh
при этом ключи самого сервера добавлять не нужно.
таким образом подписав нашим ca-key ключи всех серверов, мы сможем проверять валидность их ключей без изменения known-hosts
authenticity of this host is can`t be established
key fingerprint is xxxxxxxxxxxx
are you sure?
и хз, как отвечать. откуда ж я помню какой фингерпринт был на каждом сервере. А чужих серверов в округе полно, и вбивать свой пароль неизвестной машине очень не хочется.
Можно хранить фингерпринты где-нибудь в интернете, в доступном месте. Можно завести dns-записи, но для этого нужен свой dns-сервер, ибо я еще не видел сервисов умеющих заводить их. И, наконец, можно подписать ключи серверов ключом центра авторизации, и тогда на клиентской машине нужно будет добавить только одну строчку в known_hosts и мы автоматически начинаем доверять всем своим серверам.
создаем ключ CA
ssh-keygen -t ecdsa -f /etc/ssh/ca-keyпри этом создается обычная пара ssh ключей: ca-key (приватный) и ca-key.pub (открытый, он нам понадобится на клиентских машинах)
подписываем хост-ключи сервера
ssh-keygen -s /etc/ssh/ca-key -h -I server.com /etc/ssh/ssh_host_ecdsa_key.pubполучаем файл /etc/ssh/ssh_host_ecdsa_key-cert.pub
настраиваем sshd
в файле /etc/ssh/sshd_config добавляем строкуHostCertificate /etc/ssh/ssh_host_ecdsa_key-cert.pubперезапускаем ssh
настраиваем клиент
содержимое ca-key.pub (это одна строка) копируем в known_hosts. В начале этой строки добавляем@cert-authority server_nameпри этом ключи самого сервера добавлять не нужно.
таким образом подписав нашим ca-key ключи всех серверов, мы сможем проверять валидность их ключей без изменения known-hosts
Комментариев нет:
Отправить комментарий