La huella digital se basa en la clave pública del host, generalmente basada en "/etc/ssh/ssh_host_rsa_key.pub". Generalmente es para una fácil identificación / verificación del host al que se está conectando.
Si la huella digital cambia, la máquina a la que se está conectando ha cambiado su clave pública. Esto puede no ser algo malo (sucede al reinstalar ssh), pero también podría indicar que se está conectando a una máquina diferente en el mismo dominio / IP (sucede cuando se está conectando a través de algo como el equilibrador de carga) o que están siendo atacados con un ataque man-in-the-middle, donde el atacante de alguna manera está interceptando / redirigiendo su conexión ssh para conectarse a un host diferente que podría estar husmeando a su usuario / pw.
En pocas palabras: si se le advierte de una huella digital cambiada, tenga cuidado y verifique que realmente se esté conectando al host correcto a través de una conexión segura. Aunque la mayoría de las veces esto es inofensivo, puede ser una indicación de un problema potencial
Ver: http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
y: http://en.wikipedia.org/ wiki / Public_key_fingerprint
~/.ssh/known_hosts
. De esta manera, cuando se conecta al servidor, su cliente SSH reconocerá este servidor, ya que ha guardado su clave pública enknown_hosts
. Por lo tanto, en realidad nunca debe decir "sí" cuando el cliente SSH le dice "No se puede establecer la autenticidad del host". Siempre debe agregar la clave pública del servidor de antemano.~/.ssh/known_hosts
archivo de antemano y nunca decir sí cuando su cliente SSH le dice "No se puede establecer la autenticidad del cliente" o cuando le dice "La clave pública del servidor ha sido cambiado ".Puede generar una huella digital para una clave pública usando
ssh-keygen
así:Ejemplo concreto (si usa una clave pública RSA):
La primera parte
(2048)
es la longitud de la clave en bits, la segunda parte(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
es la huella digital de la clave pública y la tercera parte es la ubicación del archivo de clave pública en sí.fuente
ssh-keygen -lf
que hará lo que quieras.ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
. Muestra la huella digital que también se muestra en los inicios de sesión SSH en localhost.ssh-keygen
reportadassha256
. Para obtenermd5
huellas digitales corríssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
. #archlinuxssh -o FingerprintHash=md5
o su equivalente enssh_config
y sobre cosas que usanssh
comoscp
.La huella digital es el MD5 sobre los datos binarios dentro de la clave pública codificada en Base64.
El md5sum 6530389635564f6464e8e3a47d593e19 es la huella digital que se muestra cuando se genera la clave, solo sin los dos puntos de separación.
Sin embargo, si está lidiando con las huellas digitales que Amazon muestra en la consola EC2 Key Pairs, desafortunadamente esa puede ser una bestia diferente . Si se trata de una cadena hexadecimal de 32 dígitos, es la huella dactilar de clave pública MD5 SSH estándar anterior. Pero si son 40 dígitos hexadecimales, en realidad es una huella digital calculada tomando el SHA1 de la clave privada en formato PKCS # 8:
fuente
awk '{print $2}' /path/to/keyfile.pub
o similar.cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
Si desea verificar un archivo de clave SSH para ver si es lo mismo que lo que informa github como "Implementar clave", esto es para usted ...
Desde la URL privada: https://github.com/<username>/<repo_name>/settings/keys verá
En la terminal:
Notará que obtiene la misma huella digital para las claves privadas y públicas.
Ese mismo comando se puede combinar con una característica ordenada de GitHub, que es el hecho de que sirven públicamente las claves públicas SSH de los usuarios en https://github.com/<username>.keys
Aquí hay una línea que puede usar para aprovecharla.
fuente
Producirá las huellas digitales para todas las claves públicas configuradas en una instancia de sshd.
Estos se pueden colocar en los registros DNS SSHFP .
fuente