¿Hay alguna manera de ignorar temporalmente mi ~/.ssh/known_hosts
archivo?
mbp:~ alexus$ ssh 10.52.11.171
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/alexus/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/alexus/.ssh/known_hosts:155
RSA host key for 10.52.11.171 has changed and you have requested strict checking.
Host key verification failed.
mbp:~ alexus$
NOTA:
.. por unas pocas respuestas / comentarios me doy cuenta de que mi pregunta es un poco engañosa, tan breve es el comportamiento esperado), por lo que es normal (en mi caso) hay una razón válida detrás de por qué querer ver "ignorarlo")
Respuestas:
Puede usar
ssh -o StrictHostKeyChecking=no
para desactivar la comprobaciónknown_hosts
momentáneamente. Pero aconsejaría en contra de esto. Realmente deberías comprobar por qué la clave del host ha cambiado.Otra opción es agregar una entrada específica
~/.ssh/config
para el host en cuestión. Este podría ser un enfoque válido si tiene un determinado host que genera nuevas claves de host cada vez que se reinicia y se reinicia por un motivo válido varias veces al día.fuente
-o StrictHostKeyChecking=no
elimina la capacidad de iniciar sesión con una contraseña. ¿La falta de una bandera para esto no va directamente contra los principios de Unix de permitir que el usuario fuerce el comportamiento? Actualmente estoy intentando iniciar sesión en una máquina local con una IP local. La clave de host cambió porque reformateé dicha máquina. Todo aquí tiene sentido y nada es un riesgo de seguridad dadas las circunstancias.Para ignorar por completo su archivo de hosts conocidos en un entorno POSIX, configure las opciones
GlobalKnownHostsFile
yUserKnownHostsFile
para/dev/null
:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null user@host
Configurar la
StrictHostKeyChecking=no
opción le permitirá conectarse, pero SSH seguirá mostrando una advertencia :ssh -o StrictHostKeyChecking=no user@host
Como otros han señalado, probablemente sea mejor abordar el problema subyacente. Podría considerar la autenticación de certificado SSH para verificar hosts, por ejemplo.
fuente
-o StrictHostKeyChecking=no
, además de las-o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null
opciones - para una respuesta final de?:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
?Si ha reinstalado el servidor y, por lo tanto, la Identificación ha cambiado, debe eliminar la línea 155 especificada
/Users/alexus/.ssh/known_hosts
y continuar.Si cambia entre diferentes redes privadas, debe usar nombres de host para conectarse, ya que el cliente ssh también guardará claves dependiendo del nombre de host. Agregue algo como esto a su
/etc/hosts
:y luego se usa
ssh server1
cuando está conectado a la subred 1 yssh server2
cuando está conectado a la subred2. De esta manera, ambos servidores pueden tener diferentes teclas de host.fuente
-o StrictHostKeyChecking=no
solo funciona si el host no está presente en el archivo known_hosts.Creo que es más limpio (sin advertencias), si espera que la clave de los hosts cambie tal vez debido a la clonación vm, para forzar el desconocimiento de ese tipo de hosts como este:
fuente
Algunas personas dicen que no está bien, no debes hacer esto, etc., pero también necesito esto para probar un par de dispositivos integrados una y otra vez. Debe deshabilitar
StrictHostKeyChecking=no
, esto es correcto, pero también restablecer el archivo de hosts conocidos a/dev/null
. Aquí un ejemplo con inicio de sesión automático yps
en dispositivo remoto.fuente
Inicie sesión en todos sus servidores (y si es RedHat)
rm -f /etc/ssh/ssh_host_*
y luego reinicie SSHD.Esto creará nuevas claves de host SSH que no es necesario ignorar.
Solo puedo pensar en una instancia en la que las claves SSH clonadas en varios servidores no solo se desean sino que tampoco arrojan advertencias. Múltiplos de un registro A. Todos los hosts con el registro A tienen la misma clave.
fuente