¿Por qué las claves de host SSH difieren al conectarse si las claves de host son las mismas?

¿Por qué las claves de host SSH difieren al conectarse si las claves de host son las mismas?

Hay 3 máquinas: A (desde donde me conecto a B y C), B y C.
B y C tienen las mismas claves de host SSHD (se han copiado, por lo que son 100% iguales, SSHD también se ha reiniciado). , archivo sshd_config idéntico).

En C, el archivo conocido_hosts tiene este aspecto:

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

Cuando intentamos conectarnos de C a A, "A" ofrece su clave de host RSA.
Cuando intentamos conectarnos de C a B, "B" ofrece su clave de host ECDSA.

Pregunta:¿Por qué? ¿No sería lógico que el servidor "A" y "B" ofrecieran ambos, por ejemplo: sus claves de host RSA SSHD?

Respuesta1

Se prefieren las claves ECDH/ECDSA cuando se aprende una clave de host por primera vez. Dado que el host C ya conoce la clave RSA del host A, sigue usándola. Pero como el host C no sabe nada acerca de las claves del host B, se utiliza ECDH/ECDSA.

(Hice referencia a lanotas de la versión 5.7, cuando se introdujo ECDH/ECDSA).

Preguntas que tengo: ¿Se necesitan ambas llaves? Bueno, sí. No todas las instalaciones de SSH que existen son compatibles con ECDSA, por lo que necesita RSA. (Por ejemplo, PuTTY aún no hace ECDSA) ¿Qué pasa si solo tengo ECDSA? Depende de quién esté intentando contactar contigo. Si son compatibles con ECDSA, entonces todo funciona como se esperaba. Si no lo hacen, obtendrá algún tipo de fracaso. ¿Cuál es mejor? Yo personalmente no lo sé. ECDSA requiere menos caballos de fuerza, por lo que lo encontré más ágil en hardware más antiguo. Y dado que OpenSSH lo prefiere a RSA, supongo que los desarrolladores piensan que ECDSA es mejor.

Respuesta2

¿Los servidores a los que intenta conectarse tienen las mismas /etc/ssh/sshd_configversiones y/o OpenSSH (y OpenSSL) (las partes sobre configuraciones idénticas y dónde se está conectando parecen un poco contradictorias)? ECDH/ECDSA se introdujo en OpenSSH 5.7p1, por lo que si un servidor es más antiguo, simplemente ignorará el archivo clave.

información relacionada