Idealmente, debe crear una autoridad de certificación autogestionada. Comience generando un par de claves:
ssh-keygen -f cert_signer
Luego firme la clave de host pública de cada servidor:
ssh-keygen -s cert_signer -I cert_signer -h -n www.example.com -V +52w /etc/ssh/ssh_host_rsa_key.pub
Esto genera una clave de host pública firmada:
/etc/ssh/ssh_host_rsa_key-cert.pub
En /etc/ssh/sshd_config, apunte el HostCertificatea este archivo:
HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
Reinicie el servicio sshd:
service sshd restart
Luego, en el cliente SSH, agregue lo siguiente a ~/.ssh/known_hosts:
@cert-authority *.example.com ssh-rsa AAAAB3Nz...cYwy+1Y2u/
Lo anterior contiene:
@cert-authority
- El dominio
*.example.com
- El contenido completo de la clave pública
cert_signer.pub
La cert_signerclave pública confiará en cualquier servidor cuya clave de host pública esté firmada por la cert_signerclave privada.
Aunque esto requiere una configuración única en el lado del cliente, puede confiar en varios servidores, incluidos los que aún no se han aprovisionado (siempre que firme cada servidor, claro).
Para más detalles, vea esta página wiki .