В идеале вы должны создать центр сертификации с самостоятельным управлением. Начнем с создания пары ключей:
ssh-keygen -f cert_signer
Затем подпишите открытый ключ хоста каждого сервера:
ssh-keygen -s cert_signer -I cert_signer -h -n www.example.com -V +52w /etc/ssh/ssh_host_rsa_key.pub
Это создает подписанный открытый ключ хоста:
/etc/ssh/ssh_host_rsa_key-cert.pub
В /etc/ssh/sshd_config
, укажите на HostCertificate
этот файл:
HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
Перезапустите службу sshd:
service sshd restart
Затем на клиенте SSH добавьте следующее ~/.ssh/known_hosts
:
@cert-authority *.example.com ssh-rsa AAAAB3Nz...cYwy+1Y2u/
Выше содержится:
@cert-authority
- Домен
*.example.com
- Полное содержание открытого ключа
cert_signer.pub
cert_signer
Открытый ключ будет доверять любому серверу , чей публичный ключ хоста подписывается cert_signer
закрытым ключом.
Хотя это требует одноразовой настройки на стороне клиента, вы можете доверять нескольким серверам, включая те, которые еще не были подготовлены (если вы подписываете каждый сервер, то есть).
Для более подробной информации, смотрите эту вики-страницу .