20 votos

Desactivar StrictHostKeyChecking en ssh

Estoy intentando conectarme a un host de Linux utilizando ssh y recibo el siguiente error

La clave de host RSA para 10.1.1.20 ha cambiado y has solicitado una verificación estricta.

Me gustaría anular esto, pero no parezco encontrar ninguna combinación de opciones para hacerlo.

Probablemente establecí StrictHostKeyChecking hace años, pero no recuerdo cómo.

Consulté man ssh que me informa que el archivo de configuración a nivel de sistema es /etc/ssh/ssh_config y el predeterminado para el archivo de configuración por usuario es ~/.ssh/config ninguno de los dos existe.

EDITAR Para aclarar mi pregunta, la opción está claramente configurada. Estoy intentando descubrir

  1. Dónde se almacenan las opciones (no tengo los archivos mencionados en la página del manual, que parece estar equivocada).
  2. Cómo cambiar las opciones.

No estoy buscando cómo solucionar el problema que tengo (Sé que puedo editar el archivo known_hosts, pero esto es tedioso cada vez que intento conectarme a un nuevo servidor).

0 votos

Es /etc/ssh_config en la mía.

0 votos

@sborsky Yo también tengo esto (que es diferente del hombre) pero todas las opciones están comentadas.

0 votos

Esto significa predeterminado, lo cual según la página del manual es ask. Cuando cambia la clave del host, el cliente de ssh no se conectará a menos que StrictHostKeyChecking esté configurado como no. Si la clave del host no cambia muy a menudo, sugiero eliminar esta clave del host de su ~/.ssh/known_hosts en lugar de cambiar la configuración.

26voto

klanomath Puntos 19587

Para deshabilitar la verificación estricta del host en OS X para el usuario actual, cree o edite ~/.ssh/config y agregue las siguientes líneas:

Host [Dirección IP]
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Un ejemplo típico para los hosts en su red local podría ser:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Dependiendo de su uso de ssh, no recomiendo deshabilitar la verificación estricta de claves de host para todos los hosts.

Si solo desea eliminar la entrada para 10.1.1.20, abra ~/.ssh/known_hosts con un editor de su elección y elimine la línea respectiva "10.1.1.20 ssh-rsa clave-pública$"

0 votos

También parece funcionar sin la línea /dev/null.

0 votos

Esto no funcionó sin la línea /dev/null para mí: La autenticación de contraseña está deshabilitada para evitar ataques de intermediarios

9voto

Jakuje Puntos 318

Puedes simplemente probarlo tal como está, sin configuración, solo en la línea de comandos:

ssh -o StrictHostKeyChecking=no nombre_de_host

Pero no creo que haga todo lo que necesitas. Si quieres ignorar todas las comprobaciones de hostkey, necesitas configurar tu archivo known_hosts a /dev/null para que nunca se almacene nada:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null nombre_de_host

o en /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

1 votos

El primero aún no me permitía conectar, pero ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname sí. ¡Aún no puedo encontrar DÓNDE está configurado StrictHostKeyChecking!

0 votos

Por defecto, se establece en "sí", por lo que no es necesario configurarlo en ningún lugar para aplicarlo.

0 votos

La documentación indica que su valor predeterminado es sí

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X