Idealmente, você deve criar uma autoridade de certificação autogerenciada. Comece gerando um par de chaves:
ssh-keygen -f cert_signer
Em seguida, assine a chave do host público 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
Isso gera uma chave de host pública assinada:
/etc/ssh/ssh_host_rsa_key-cert.pub
Em /etc/ssh/sshd_config
, aponte HostCertificate
para este arquivo:
HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
Reinicie o serviço sshd:
service sshd restart
Em seguida, no cliente SSH, adicione o seguinte a ~/.ssh/known_hosts
:
@cert-authority *.example.com ssh-rsa AAAAB3Nz...cYwy+1Y2u/
O acima contém:
@cert-authority
- O domínio
*.example.com
- O conteúdo completo da chave pública
cert_signer.pub
A cert_signer
chave pública confiará em qualquer servidor cuja chave de host pública seja assinada pela cert_signer
chave privada.
Embora isso exija uma configuração única no lado do cliente, você pode confiar em vários servidores, incluindo aqueles que ainda não foram provisionados (desde que você assine cada servidor).
Para mais detalhes, consulte esta página wiki .