Obtener la primera huella digital

Obtener la primera huella digital

Según tengo entendido, una huella digital RSA es básicamente una clave hash.

Mi comprensión de un puerto reenviado se basa en la siguiente sección de man ssh:

 -R [bind_address:]port:host:hostport
         Specifies that the given port on the remote (server) host is to
         be forwarded to the given host and port on the local side.  This
         works by allocating a socket to listen to port on the remote
         side, and whenever a connection is made to this port, the connec‐
         tion is forwarded over the secure channel, and a connection is
         made to host port hostport from the local machine.

Cuando se utiliza ssh para conectarse a un puerto reenviado, ¿de qué es un hash la huella digital de la clave RSA? Usar claves de autenticación RSA idénticas en varias máquinasdescribirá por qué lo pregunto.

O, por ejemplo, ¿de qué son realmente las dos huellas dactilares siguientes?

  1. La huella digital de la clave RSA es 94:21:d2:fc:70:2d:8d:bb:71:30:0f:4d:52:49:01:43.
  2. La huella digital de la clave RSA es b2:5b:19:25:91:50:3c:45:73:c7:7e:4f:da:c3:f6:f3.

Obtener la primera huella digital

Máquina 1

sshtunnel@pi_one:~ $ ssh -R 2222:localhost:22 [email protected]

Máquina común

[sshtunnel@devserver ~]$ ssh -p 2222 sshtunnel@localhost
The authenticity of host '[localhost]:2222 ([::1]:2222)' can't be established.
RSA key fingerprint is 94:21:d2:fc:70:2d:8d:bb:71:30:0f:4d:52:49:01:43.
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.

Obtener una segunda huella digital

maquina 2

sshtunnel@pi_two:~ $ ssh -R 2222:localhost:22 [email protected]

Máquina común

[sshtunnel@devserver ~]$ ssh -p 2222 sshtunnel@localhost
The authenticity of host '[localhost]:2222 ([::1]:2222)' can't be established.
RSA key fingerprint is b2:5b:19:25:91:50:3c:45:73:c7:7e:4f:da:c3:f6:f3.
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.
[sshtunnel@devserver ~]$

Respuesta1

Las claves públicas del host en /etc/ssh/ssh_host_*_key.pub:

$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is 60:6e:7a:10:85:a4:14:f1:37:44:88:17:29:67:b1:e1.
Are you sure you want to continue connecting (yes/no)? ^C

$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key
256 60:6e:7a:10:85:a4:14:f1:37:44:88:17:29:67:b1:e1 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)

(Tenga en cuenta que no importa si solicita ssh-keygenuna huella digital de la clave privada (sin la .pubextensión), en su lugar, lee automáticamente la clave pública correspondiente).

En su caso, es la clave RSA la que se menciona, por lo que /etc/ssh/ssh_host_rsa_key.pub, y con el reenvío de puerto, es sshal que finalmente se conecta el host.

Con las versiones más recientes de ssh-keygen, la salida predeterminada es el hash SHA256 codificado en base64 de la clave. Agregar la -E md5opción proporciona el hash MD5 codificado en hexadecimal (pero tenga en cuenta que ahora hay un prefijo que indica el tipo de hash):

$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:4+dfNAIjGq72HL9UeNEpne8J54yj/4wFpi+/4Bv7dhQ root@... (ECDSA)
$ ssh-keygen -Emd5 -l -f /etc/ssh/ssh_host_ecdsa_key.pub
256 MD5:3c:18:e7:9c:ee:e8:6a:38:7d:74:ef:2f:a5:51:ee:1a root@... (ECDSA)

información relacionada