Por que as chaves dos hosts SSH diferem durante a conexão se as host_keys são iguais?

Por que as chaves dos hosts SSH diferem durante a conexão se as host_keys são iguais?

Existem 3 máquinas: A (de onde eu me conecto a B e C), B e C.
B e C têm as mesmas chaves de host SSHD (elas foram copiadas, portanto são 100% iguais, o SSHD também foi reiniciado , arquivo sshd_config idêntico).

Em C, o arquivoknown_hosts fica assim:

C:~/.ssh # grep B *
C:~/.ssh # grep A *
known_hosts:ssh-rsa xxxx...xxxx
C:~/.ssh # 

Quando tentamos conectar de C a A, "A" oferece sua chave de hosts RSA.
Quando tentamos conectar de C a B, "B" oferece sua chave de hosts ECDSA.

Pergunta:Por que? Não seria lógico que os servidores "A" e "B" oferecessem ambos, por exemplo: suas chaves de hosts RSA SSHD?

Responder1

As chaves ECDH/ECDSA são preferidas ao aprender uma chave de host pela primeira vez. Como o host C já conhece a chave RSA do host A, ele continua usando-a. Mas como o host C não sabe nada sobre as chaves do host B, o ECDH/ECDSA é usado.

(eu fiz referência aonotas de lançamento para 5.7, quando o ECDH/ECDSA foi introduzido).

Perguntas que recebi: Ambas as chaves são necessárias? Bem, sim. Nem todas as instalações de SSH oferecem suporte a ECDSA, então você precisa de RSA. (Por exemplo, o putty ainda não faz ECDSA) O que aconteceria se eu tivesse apenas ECDSA? Depende de quem está tentando entrar em contato com você. Se eles apoiarem o ECDSA, tudo funcionará conforme o esperado. Se não o fizerem, você terá algum tipo de fracasso. Qual é o melhor? Eu pessoalmente não sei. O ECDSA requer menos potência, então achei mais rápido em hardware mais antigo. E como o OpenSSH prefere o RSA, acho que os desenvolvedores acham que o ECDSA é melhor.

Responder2

Os servidores que você está tentando conectar têm as mesmas /etc/ssh/sshd_configversões e/ou OpenSSH (e OpenSSL) (as informações sobre configurações idênticas e onde você está se conectando parecem um pouco contraditórias)? ECDH/ECDSA foi introduzido no OpenSSH 5.7p1, portanto, se um servidor for mais antigo, ele simplesmente ignorará o arquivo de chave.

informação relacionada