Estes não são formatos diferentes de known_hosts
, mas diferentes tipos de chave ( ssh-rsa
e ecdsa-sha2-nistp256
- bem descritos na página de manual para sshd
). O servidor geralmente tem mais chaves de host de tipos diferentes para fornecer compatibilidade mais ampla com clientes diferentes.
Se você estiver no servidor, poderá localizar todas as chaves do host e imprimir suas chaves públicas usando, mas a linha não está no mesmo formato que:
$ cat /etc/ssh/ssh_host_*.pub
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEJJEs165NgdEcD94Xg3ySFA/qgkfytxNCX1X3pB2SPgU/mHLGXCXM8+VqMBXocM8OMOq2L0fDGr5mI+nGqjhNU= user@host
O formato aceito pelo arquivo known_hosts
pode ser obtido usando (do servidor para obter a autenticidade das chaves):
$ ssh-keyscan 11.22.33.44
11.22.33.44 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEJJEs165NgdEcD94Xg3ySFA/qgkfytxNCX1X3pB2SPgU/mHLGXCXM8+VqMBXocM8OMOq2L0fDGr5mI+nGqjhNU=
#[...]
Imprime o formato que você pode armazenar diretamente no cliente known_hosts
.
Para toda a imagem (da página de manual):
Each line in these files contains the following fields: markers (optional), hostnames, bits, exponent, modulus, comment. The fields are separated by spaces.
(embora pareça não consistente com o que é gerado: nome do host, tipo de chave, dados chave (base64)) - Vou verificar isso mais tarde, já que não é importante para a pergunta