El archivo known_hosts
es una parte esencial del proceso de conexión SSH (Secure Shell) que almacena las claves públicas de los servidores a los que te has conectado previamente. Este archivo garantiza que las conexiones futuras sean seguras al verificar la autenticidad del servidor. Sin embargo, pueden surgir problemas cuando intentas conectarte a un servidor y encuentras errores relacionados con el archivo known_hosts
. En este artículo, analizaremos cómo resolver estos errores sin reemplazar el archivo y cómo garantizar que tu conexión SSH sea segura y eficiente.
¿Qué Es el Archivo Known_Hosts y Por Qué Es Importante?
El archivo known_hosts
se encuentra en el directorio ~/.ssh/
de tu sistema y actúa como una lista de servidores a los que te has conectado anteriormente. Cada vez que te conectas a un servidor a través de SSH, su clave pública se almacena en este archivo. En las siguientes conexiones, el sistema verifica la clave del servidor con la almacenada en known_hosts
para asegurarse de que no haya habido cambios inesperados o posibles ataques de suplantación.
Errores Comunes Relacionados con el Archivo Known_Hosts
Es posible que encuentres errores como:
- «WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!»: Esto ocurre cuando la clave pública del servidor al que intentas conectarte ha cambiado y ya no coincide con la almacenada en tu archivo
known_hosts
. - «Host key verification failed»: Este error indica que hay un conflicto entre la clave del servidor almacenada y la nueva clave que el servidor está presentando.
- «Permissions are too open»: Esto sugiere que el archivo
known_hosts
o su directorio tienen permisos incorrectos y no son seguros.
Cómo Resolver Errores de Known_Hosts Sin Reemplazar el Archivo
Reemplazar o eliminar el archivo known_hosts
no es la mejor práctica, ya que perderías la información de autenticidad de todos los servidores a los que te has conectado. En su lugar, sigue estos métodos para resolver los errores de forma segura:
1. Actualizar la Clave del Servidor en el Archivo Known_Hosts
Si la clave del servidor ha cambiado legítimamente (por ejemplo, debido a una reinstalación del servidor o una actualización de seguridad), puedes actualizar la clave específica en tu archivo known_hosts
.
- Solución:
- Ubica la línea del servidor problemático usando el siguiente comando:cssCopia el codi
ssh-keygen -R [dirección_del_servidor]
Esto eliminará la entrada del servidor en el archivoknown_hosts
. - Conéctate de nuevo al servidor utilizando SSH, y se agregará automáticamente la nueva clave:cssCopia el codi
ssh usuario@dirección_del_servidor
- Ubica la línea del servidor problemático usando el siguiente comando:cssCopia el codi
2. Resolver Errores de Permisos
Si el error está relacionado con los permisos del archivo known_hosts
, ajustarlos resolverá el problema.
- Solución:
- Asegúrate de que el archivo
known_hosts
tenga los permisos correctos ejecutando:bashCopia el codichmod 600 ~/.ssh/known_hosts
Esto establece los permisos para que solo el propietario pueda leer y escribir en el archivo. - Ajusta los permisos de la carpeta
.ssh
:bashCopia el codichmod 700 ~/.ssh
- Asegúrate de que el archivo
3. Uso de la Opción StrictHostKeyChecking
Para evitar problemas temporales al conectar con un servidor, puedes usar la opción StrictHostKeyChecking=no
. Esta opción permite conectarse sin requerir la verificación de la clave del servidor.
- Solución:
- Conéctate usando el siguiente comando:perlCopia el codi
ssh -o StrictHostKeyChecking=no usuario@dirección_del_servidor
- Nota: Esta solución es útil para conexiones temporales, pero no es recomendable a largo plazo, ya que reduce la seguridad de la conexión SSH.
- Conéctate usando el siguiente comando:perlCopia el codi
Consejos para Mantener la Seguridad de Conexiones SSH
- Realiza copias de seguridad del archivo known_hosts: Antes de hacer cualquier cambio, realiza una copia de seguridad de tu archivo
known_hosts
para evitar la pérdida de información. - Verifica siempre la autenticidad de los servidores: Cuando notes un cambio en la clave de un servidor, asegúrate de que el cambio es legítimo antes de actualizar el archivo
known_hosts
. - Utiliza SSH Key Management Tools: Herramientas como
ssh-agent
ossh-add
pueden ayudarte a gestionar claves SSH de forma más eficiente y segura.