¿Qué podría causar una discrepancia en la huella digital de la clave del host SFTP?

¿Qué podría causar una discrepancia en la huella digital de la clave del host SFTP?

Un usuario remoto intentó conectarse a mi servidor SFTP/SSH por primera vez, utilizando el cliente "Transmitir" en Mac OS X, y descubrió que la huella digital de la clave del host no coincide con el valor esperado.

Tengo una captura de pantalla de la huella digital mostrada y la comparé con el resultado de ssh-keygen -lf /etc/ssh/ssh_host_dsa_keyy ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.puby no coincide con ninguno de estos.

También comparé sin éxito la huella digital con la salida de cut -d ' ' -f 2 < /etc/ssh/ssh_host_dsa_key.pub | base64 -d | sha1sumy cut -d ' ' -f 2 < /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha1sum(¿porque parece que se utilizan diferentes algoritmos de huellas dactilares?).

El cuadro de mensaje en el lado del cliente se titula (traducido al inglés)

Clave de host desconocida para<nombre de host>

y estados

El servidor es desconocido. La huella digital de la clave del host es< 16 octetos >. ( Permitir ) ( Denegar ) [ ] Siempre

Por lo tanto, no hay indicación de si se utiliza la clave RSA o DSA, o si se utiliza MD5 o algún algoritmo SHA para crear la huella digital.

La huella digital que se muestra al usuario remoto tiene 16 octetos separados por dos puntos, por lo que no parece usar SHA-224 ni nada superior.Actualizar: Me acabo de dar cuenta de que incluso un hash SHA-1 tendrá 20 octetos, por lo que aparentemente la huella digital mostrada no está en ningún formato SHA.

La conexión finalmente va al servidor correcto, porque puedo ver el intento de inicio de sesión en los registros de mi servidor si el usuario permite la conexión. Entonces parece que el nombre de host/IP se ingresó correctamente en el lado del cliente.

Una conexión a otro servidor SFTP (completamente no relacionado) también muestra una huella digital incorrecta (pero diferente a la del primer servidor).

Si intento conectarme al servidor usando OpenSSH desde algún otro host (o localmente desde el servidor), se me muestra la huella digital correcta (la huella digital MD5 para la clave de host RSA).

El servidor ejecuta Debian 6 LTS con el servidor OpenSSH estándar.

¿Qué podría causar esta discrepancia en las huellas dactilares? ¿Cómo puedo depurar este problema?

Respuesta1

Si es la primera vez que se conectan, no importa si hay una discrepancia... el cliente simplemente tenía una entrada antigua no relacionada que tenía el mismo nombre de host o dirección IP asociada. Simplemente límpielo con:

ssh-keygen -R $name_or_ip

Después de hacer eso, seguramente debería decir si es RSA, ECDSA, etc. la próxima vez que se conecte. De lo contrario, intente utilizar un cliente adecuado como el cliente OpenBSD OpenSSH, que es estándar en Linux, o pruebe -v (o -vvvv, etc. opciones detalladas). Y luego verifique y acepte la nueva clave. El formato de huella digital clave en clientes antiguos es md5 (y en los nuevos es sha256, en algún formato base64 extraño en lugar de ascii-hex), y la forma correcta de obtener la huella digital en el lado del servidor es:

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Respuesta2

Resulta que el programa FTP en uso no era Transmit sino Cyberduck 4.5.1. El problema de la huella dactilar equivocada ya se conocía comoHuella digital de clave de host incorrecta. La actualización a la última versión solucionó este problema y la huella digital mostrada ahora es correcta.

información relacionada