Deshabilitar StrictHostKeyChecking en ssh

14

Estoy tratando de conectarme a un host Linux usando sshy obtengo el siguiente error

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

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

Probablemente configuré StrictHostKeyChecking hace años, pero no recuerdo cómo.

Consulté lo man sshque me informa que el archivo de configuración de todo el sistema es /etc/ssh/ssh_configy el valor predeterminado para el archivo de configuración por usuario ~/.ssh/configno existe.

EDITAR Para aclarar mi pregunta, la opción está claramente establecida. Estoy tratando de descubrir

  1. Dónde se almacenan las opciones (no tengo los archivos mencionados en la página del manual, que parece estar equivocado).
  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 un nuevo servidor).

Milliways
fuente
Está /etc/ssh_configen la mía.
sborsky
@sborsky También tengo esto (que es diferente del hombre) pero todas las opciones están comentadas.
Milliways
Esto significa predeterminado, que según la página del manual es ask. Cuando se cambia una clave de host, el cliente ssh no se conectará a menos que StrictHostKeyCheckingesté configurado en no. Si la clave de host no cambia muy a menudo, sugeriría eliminar esta clave de host en ~/.ssh/known_hostslugar de cambiar la configuración.
sborsky
1
Primero debes descubrir por qué se cambió. Si no lo cambió, puede ser un ataque MitM, ¡y por supuesto no debe permitir esta clave de host!
Nombre para mostrar
Nota al margen: después de eliminar todos los registros de un host determinado .ssh/known_hosts, continué recibiendo la advertencia hasta que descubrí la fila infractora en otro archivo llamado .ssh/known_hosts2. aparentemente OS X usa ambos
billynoah

Respuestas:

18

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

Host [IP Address] 
   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 desactivar la comprobación estricta de la clave 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 public-key $ "

klanomath
fuente
También parece funcionar sin la línea / dev / null.
John2095
6

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

ssh -o StrictHostKeyChecking=no hostname

Pero no creo que haga todo lo que necesitas. Si desea ignorar todas las comprobaciones de la clave de host, debe configurar su known_hostsarchivo para /dev/nullque nunca se almacene nada:

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

o en /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Jakuje
fuente
El 1er todavía no me permitió conectarme, pero lo ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnamehizo. ¡Todavía no puedo encontrar DONDE StrictHostKeyChecking está configurado!
Milliways
El valor predeterminado es "sí", por lo que no es necesario configurarlo en ningún lugar para aplicarlo.
Jakuje
La documentación establece que su valor predeterminado es sí
Milliways
elegir como solución ayudaría si ayudara a resolver su problema;)
Jakuje