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?
- La huella digital de la clave RSA es 94:21:d2:fc:70:2d:8d:bb:71:30:0f:4d:52:49:01:43.
- 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-keygen
una huella digital de la clave privada (sin la .pub
extensió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 ssh
al 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 md5
opció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)