Actualizar llaves del host

Generalidades

Esta guía proporciona formas de eliminar las advertencias que ves cuando te conecta a tu dominio/servidor web a través de SSH. La advertencia a la que se refiere esta guía es la de 'claves de host no coinciden':

Si eliminas las entradas de known_host como se recomienda aquí, vas a estar vulnerable a un ataque de 'hombre en el medio'.

El mensaje de error

Si ves la siguiente advertencia al acceder a tu dominio o servidor web a través de SSH, generalmente significa que la clave de host no coincide con la clave en tu archivo known_host.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
REMOVED FOR SECURITY REASONS
Please contact your system administrator.
Add correct host key in /home/username/.ssh/known_hosts to get rid of this message.
Offending key in /home/username/.ssh/known_hosts:10278
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.

–

Esto no suele ser un motivo de preocupación y puede remediarse de diferentes maneras.

Resolver el mensaje de advertencia

Hay tres métodos para eliminar este error. Ten en cuenta que la modificación para corregir esto debe realizarse en el lado del cliente SSH, por lo que si obtienes esta conexión desde tu casa/trabajo, debes actualizar esa computadora en específico.

 

Método uno -- Generar una nueva clave de host (MAC o Linux)

Si te has conectado a un host en el pasado, la clave de host anterior se almacena en el archivo /user/.ssh/known_hosts. Si la clave se ha actualizado en el servidor, ahora debes eliminar la clave anterior en tu computador.

Corre el siguiente comando en tu shell.

Cambia HOSTNAME al host al que te estás conectando, como example.com

[local]$ ssh-keygen -R HOSTNAME

La opción -R elimina la clave anterior relacionada con un hostname específico.

Ahora puedes conectarte a través de SSH para almacenar una nueva clave.

Cuando te conectes la siguiente vez, verás la advertencia La llave de host del servidor es desconocida. Esto solamente quiere decir que no está en el archivo known_hosts. Debes confirmar que la huella dactilar es la que se muestra en el panel usando las instrucciones del siguiente artículo.

Una vez hayas confirmado que coinciden puedes iniciar sesión y la llave será actualizada automáticamente en el archivo known_hosts de tu computador.

 

Método Dos — Eliminar el archivo known_hosts

No uses este método si inicias sesión en otros servidores que no son de DreamHost. Si es así, no tendrás manera de saber si tus llaves de SSH cambiaron pues el archivo known_hosts habrá sido eliminado.

Elimina completamente el archivo known_hosts (en tu computador local) si tienes varios hosts que necesitan ser actualizados.

En una máquina Mac o Linux

El archivo known_hosts está ubicado en el directorio .ssh/known_hosts. Puedes simplemente correr este comando en una terminal para eliminar el archivo known_host:

[local]$ rm .ssh/known_hosts

En una máquina Windows usando PuTTY

Debes acceder al registro para eliminar el archivo known_hosts:

  1. Abre 'regedit.exe' haciendo una búsqueda.
  2. Navega a HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  3. Elimina todas las llaves allí o elimina la clave de host individual.

Cuando te conectes la siguiente vez, verás la advertencia La llave de host del servidor es desconocida. Esto solamente quiere decir que no está en el archivo known_hosts. Debes confirmar que la huella dactilar es la que se muestra en el panel usando las instrucciones del siguiente artículo.

Una vez hayas confirmado que coinciden puedes iniciar sesión y la llave será actualizada automáticamente en el archivo known_hosts de tu computador.

 

Método Tres — Editar el archivo known_hosts

Este es un método avanzado. Solo edita known_hosts si te sientes cómodo editar archivos vía SSH.

Edita el archivo known_hosts. En el caso de arriba, abre el archivo /home/username/.ssh/known_hosts en tu editor de texto preferido, y luego elimina la línea que causa el problema. Asegúrate de cambiar username a tu usuario Shell.

Esto es similar al método dos pero en vez de eliminar completamente el archivo known_hosts, tu eliminas la línea del host específica en el archivo.

El mensaje de advertencia muestra el número de la línea; se puede encontrar después del nombre del archivo en el error. En el mensaje de error de arriba, la línea de error es 10,278. Si estás en una máquina Mac o Linux y si estás usando el editor "vim", puedes simplemente escribir el siguiente comando para saltar a esa línea:

[local]$ vim +10278 known_hosts
El editor se abre a esa línea específica. Haz clic dos veces en la tecla d para eliminar esa línea, y escribe dos puntos (:) seguido de la letra x:
[local]$ :x

Finalmente, presiona la tecla Entrar para guardar.

Visita el siguiente artículo para obtener más detalles sobre cómo usar vim.

En una máquina Windows que utiliza PuTTY, navega a la carpeta de Registro como se muestra en el método dos en la parte superior. En ese directorio, aparece una lista de nombres de host. Haz clic con el botón derecho en el que necesitas eliminar y luego selecciona 'Eliminar'.

Cuando te conectes la siguiente vez, verás la advertencia La llave de host del servidor es desconocida. Esto solamente quiere decir que no está en el archivo known_hosts. Debes confirmar que la huella dactilar es la que se muestra en el panel usando las instrucciones del siguiente artículo.

Una vez hayas confirmado que coinciden puedes iniciar sesión y la llave será actualizada automáticamente en el archivo known_hosts de tu computador.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?