Se você usar isso:
ssh -o StrictHostKeyChecking=no server.example.net
você pode evitar completamente a questão, mas , ao fazer isso, você está evitando uma verificação importante que o SSH usa para verificar a identidade do host remoto. Você mencionou que tem a impressão digital da RSA. Verifique quando usar esta opção.
Você perguntou como poderia "gerar" a entrada que adicionaria ao seu arquivo known_hosts. Eu suponho que você esteja usando o OpenSSH.
Em cada um dos servidores aos quais você está se conectando, você precisará descobrir onde as chaves SSH do host remoto residem. No Linux e no FreeBSD, tudo deve estar em /etc/ssh/
. No OSX, a configuração do SSH, incluindo as teclas, está bem em /etc/
. Se não tiver certeza, você poderá encontrar as chaves com:
find /etc/ -name ssh_host\*.pub -print
Provavelmente, você terá resultados como este:
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key.pub
O conteúdo desses arquivos nos servidores remotos pode ser adicionado textualmente ao arquivo known_hosts usado pelo seu cliente ssh. E, obviamente, se você normalmente usa apenas um tipo de chave, provavelmente não precisa do conteúdo de ambos os arquivos.
A outra pergunta que você fez foi se era possível especificar um arquivo alternativo known_hosts. A outra resposta a essa pergunta fornece instruções para você.
Observe que você também pode especificar um arquivo alternativo known_hosts usando uma entrada no arquivo ~/.ssh/config
. Por exemplo:
host cloudhost*
UserKnownHostsFile ~/.ssh/known_hosts_cloud
Isso pode funcionar se você coletar todas as chaves do host no arquivo nomeado e tiver nomes de host como cloudhost1, cloudhost2, ....