Introducción
El servidor SSH tiene habilitada una comprobación estricta de la clave de host de forma predeterminada. Cuando la verificación de claves está habilitada, el cliente SSH conecta solo aquellos hosts, cuyas claves de host válidas se almacenan en el archivo del host conocido. Puede encontrar la clave en el archivo ~/.ssh/known_hosts
.
Una vez que esté conectado a un archivo de host remoto a través de SSH, los clientes SSH verifican el archivo de clave de host en el archivo unknown_hosts. Si se encuentra la clave, se conectará a un servidor remoto después de la autenticación, pero si la clave no se encuentra en el archivo unknown_hosts, el comando mostrará un mensaje de advertencia y un mensaje para aceptar o rechazar la solicitud de conexión. Una vez aceptada escribiendo "yes", la clave se agrega al archivo unknown_hosts.
A continuación, se muestra un ejemplo de un comando:
ssh ubuntu@remote-host
The authenticity of host 'remote-host (123.45.67.89)' can't be established.
RSA key fingerprint is 9f:48:89:f5:68:2f:cd:b3:19:95:40:43:98:09:0a:1a.
Are you sure you want to continue connecting (yes/no)?
Pero en algunas situaciones, como los scripts de shell, es necesario deshabilitar la comprobación del host. Lea este artículo para comprender cómo deshabilitar la verificación de host en clientes SSH en sistemas Linux.
Deshabilitar la verificación con el comando SSH
Puede definir el argumento StrictHostKeyChecking=no
de la línea de comandos para que el comando ssh omita la verificación de la clave del host.
ssh -o StrictHostKeyChecking=no user@remote-host
Usa el archivo de configuración
También puede definir cadenas para deshabilitar la verificación de claves de host en el archivo de configuración. Debe crear un archivo ~/.ssh/config
y deshabilitar la verificación de la clave de host agregando el siguiente contenido:
vi ~/.ssh/config
Host *
StrictHostKeyChecking no
Esto deshabilitará la verificación de host para todos los hosts a los que se conecte. En lugar de deshabilitar la comprobación de host para todos los hosts "*", sería más seguro especificar un host en particular:
Host 192.168.1.10
StrictHostKeyChecking no
Además, establezca los permisos adecuados en el archivo para que sea de solo lectura para el usuario:
sudo chmod 400 ~/.ssh/config
Eso es todo. Ha desactivado con éxito la comprobación estricta de claves de host en SSH.
Conclusión
En este tutorial, aprendió cómo deshabilitar la comprobación estricta de la clave de host al conectar la clave ssh a un host remoto.