Al conectarse a un servidor nuevo / desconocido (con OpenSSH reciente), por ejemplo:
ssh example.com
Obtiene la huella digital como a continuación:
The authenticity of host 'example.org (192.0.2.42)' can't be established.
RSA key fingerprint is SHA256:7KMZvJiITZ+HbOyqjNPV5AeC5As2GSZES5baxy1NIe4.
Are you sure you want to continue connecting (yes/no)?
Sin embargo, las huellas digitales generalmente se dan para el servidor de esta forma:
f6:fc:1c:03:17:5f:67:4f:1f:0b:50:5a:9f:f9:30:e5
¿Cómo puedo verificar la autenticidad (sin molestar a los administradores del servidor para que proporcionen una huella digital SHA256)?

Respuestas:
Anteriormente, la huella digital se daba como un hash md5 hexadecimal. Comenzando con OpenSSH 6.8, la huella digital ahora se muestra como base64 SHA256 (por defecto). No puedes compararlos directamente.
También agregaron una nueva opción de configuración
FingerprintHash. Puedes poneren su
~/.ssh/configpara volver al antiguo valor predeterminado ( menos seguro ) o simplemente use esta opción para un solo uso:lo que daría la huella digital como
Esperemos que los administradores del servidor proporcionen ambos tipos de huellas digitales en un futuro próximo.
EDITAR:
Como se da en los foros de Arch Linux , también hay una tercera opción:
EDITAR:
Puede generar el hash de una clave arbitraria como se indica en el libro de cocina de OpenSSH :
Recupere la clave:
ssh-keyscan example.org > key.pub/etc/sshGenera el hash:
key.pubo ejecutessh-keyscan -t rsa example.org > key.pubssh-keygen -l -f key.pub(hash predeterminado, según la versión de OpenSSH)ssh-keygen -l -f key.pub -E md5(md5 en OpenSSH actual)awk '{print $2}' ssh_host_rsa_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64(sha256 en el antiguo OpenSSH)awk '{print $3}'las versiones más nuevas de ssh-keyscan porque el formato cambió)fuente
ssh-keygen -lfen el servidor sólo me da la impresión de MD5, y para la vida de mí no puedo encontrar la manera de obtener el sha256 uno, ya sea en las páginas del manual o de la www hasta ahora ...awk1-liner (no coincide con el hash mostrado por mi cliente)sha256sum -b | awk '{print $1}' | xxd -r -ppuede ser reemplazado poropenssl sha256 -binaryno requerir vim instalado. La línea de comando resultante sería:awk '{print $2}' ~/.ssh/id_rsa.pub | base64 -d | openssl sha256 -binary | base64Acabo de crear un pequeño script bash que imprimirá la tabla con huellas digitales para todos los cifrados de clave permitidos en el servidor (según
/etc/ssh/sshd_config) en ambosSSH-256yMD5algo. Aquí hay un ejemplo de salida:El script también se ejecutará en servidores con la
SSHversión siguiente6.8(antes de que-E md5se agregara la opción).Editar: versiones actualizadas para versiones aún más recientes de SSH que cambiaron los cifrados predeterminados ahora con soporte de imágenes ASCII.
Esto es bastante impreso usando la información de
JonnyJDla respuesta de. Gracias.fuente
Resulta que ssh-keygen (en algún momento después de la versión 6.6; presumiblemente 6.8) tiene una
-E md5opción que hará que imprima la huella digital como una huella digital md5. Por lo tanto, si puede tomar independientemente el archivo de clave pública del servidor, puede alimentarlossh-keygen -E md5 -l -f ssh_host_rsa_key.puby obtener su huella digital familiar.fuente
El siguiente one-liner funciona (al menos) en
Ubuntu 16.04,18.04 / Centos >= 7(Probado con servidores:
openssh 3.9-openssh 7.4)Salida:
fuente
intentó modificar para obtener también arte aleatorio en la tabla:
... pero en realidad no soy programador y el script no funciona como se esperaba. Agradecería si alguien puede ayudar a arreglar (también la limpieza). Sería bueno tener imágenes de arte aleatorias sha256 y md5 juntas para usar el espacio de manera más eficiente. También modifiqué los comandos md5 y sha256 ya que los originales no funcionaron para mí (probablemente un sistema demasiado nuevo): solo sha256 apareció en la tabla con el signo "=" al final, que no era parte de la huella digital real y no podía eliminarlo.
(lo siento, no pude comentar como me registré recientemente)
fuente