Advertencia de PuTTY: la clave de host del servidor no coincide con la que PuTTY ha almacenado en caché en el registro

Advertencia de PuTTY: la clave de host del servidor no coincide con la que PuTTY ha almacenado en caché en el registro

Cuando uso PuTTY para conectarme a un nuevo host, a menudo recibo la advertencia

La clave de host del servidor no coincide con la que PuTTY ha almacenado en caché en el registro.

después de presionar

PuTTY agrega la clave RSA del servidor al registro de Windows 10, podré iniciar sesión en el servidor remoto y la advertencia no volverá a aparecer.

Sé que la clave RSA viene en pares, tanto pública como privada. Lo que estoy tratando de entender es qué clave guardó el servidor en mi máquina local, supongo que la clave pública del servidor.

Además, cuando PuTTY realizó la conexión SSH inicial al servidor, ¿cómo decide el servidor qué clave reenviar? Supongamos que el servidor tiene una lista de claves públicas, ¿existe una clave genérica para cualquier cliente que intente realizar las conexiones?

¿Y dónde se almacena esta clave genérica en el servidor? bajo /root/.ssh/ authorized_keys?

Respuesta1

Generalmente debes tener mucho cuidado cuando llegues.

ADVERTENCIA: ¡POTENCIAL VIOLACIÓN DE SEGURIDAD!

La clave de host del servidor no coincide con la que PuTTY ha almacenado en caché en el registro.

Es una indicación deAtaque MITM.

Consulte también la documentación de PuTTY paraADVERTENCIA: ¡POTENCIAL VIOLACIÓN DE SEGURIDAD!(cuál es la parte principal del mensaje, que de alguna manera omitiste en tu pregunta).

Nunca recibes este mensaje por unnuevoservidor. A menos, por supuesto, que el nuevo servidor reutilice la dirección IP/nombre de host de algún servidor descartado. En cuyo caso, está bien ignorar la advertencia.


Es, por supuesto, unpúblicoclave que PuTTY almacena en caché. AprivadoLa clave es secreta y no debe ser accesible para nadie, excepto para el administrador del servidor. Entonces no hay manera de SSHclientepuede conseguirlo.


De hecho, el servidor puede tener varios pares de claves para diferentes algoritmos (uno para cada algoritmo, como RSA, DSA, ECDSA, ED25519). El cliente y el servidor acordarán el mejor algoritmo a utilizar (el mejor de los soportados tanto por el servidor como por el cliente).


Los pares de claves generalmente se almacenan en /etc/ssh(en Linux con OpenSSH).


Aunque la redacción de su pregunta sugiere que puede confundir el par de claves servidor/host con el par de claves que utiliza para autenticarse en el servidor.

Vermiartículo sobreComprender los pares de claves SSH.

Respuesta2

Sé que la clave rsa viene en pares, tanto pública como privada. Lo que estoy tratando de entender es qué clave guardó el servidor en mi máquina local, supongo que la clave pública del servidor.

Sí, PuTTY guarda la huella digital de la clave pública del servidor. Puede ver todas las claves almacenadas en el registro bajo la clave:HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

Además, cuando PuTTY realizó la conexión SSH inicial al servidor, ¿cómo decide el servidor qué clave reenviar? Supongamos que el servidor tiene una lista de claves públicas, ¿existe una clave genérica para cualquier cliente que intente realizar las conexiones? ¿Y dónde se almacena esta clave genérica en el servidor?

El servidor solo tiene una clave de host por tipo de clave (RSA, DSA, etc.). El lugar donde se almacenan depende de la configuración, pero, por ejemplo, de forma predeterminada en los sistemas Ubuntu, generalmente se almacenan en/etc/ssh

Respuesta3

Si está seguro de que no se trata de un ataque MITM o alguna otra violación de seguridad, puede utilizarla plinkpara actualizar la clave, por ejemplo

plink [email protected]

Le indicará con unADVERTENCIA: ¡POTENCIAL VIOLACIÓN DE SEGURIDAD!mensaje y ofrecer la opción de actualizar la clave almacenada en caché. No es necesario que trastees tú mismo en el registro de Windows...

Respuesta4

Ejecute el siguiente comando

ssh -T[correo electrónico protegido]

Le dará un mensaje de advertencia similar al siguiente, yelimine la clave ofensiva del archivoknown_hosts.

Advertencia: La clave de host ECDSA para 'github.com' difiere de la clave para la dirección IP '140.82.112.4'

  • Clave ofensiva para IP en ~/.ssh/known_hosts:11
  • Clave de host coincidente en ~/.ssh/known_hosts:15
  • ¿Estás seguro de que quieres continuar conectándote? (sí/no)

Nota:

  • Repita hasta que se eliminen todas las claves ofensivas.
  • Es posible que sea necesario reiniciar el concurso (agente de autenticación PuTTY)

Ver también:https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/

información relacionada