В идеале, вы должны создать автономный центр сертификации.Начните с создания пары ключей:
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
.
Хотя это требует одноразовой настройки на стороне клиента, вы можете доверять нескольким серверам, включая те, которые еще не были подготовлены (если вы подписываете каждый сервер, то есть).
Подробнее см. на этой вики-странице .