¿Cómo puedo evitar la verificación de host de SSH para hosts conocidos?

170

Recibo el siguiente mensaje cada vez que intento conectar un servidor usando SSH. Escribo "sí", pero ¿hay alguna forma de evitar esto?

The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 
shantanuo
fuente
8
/ dev / null existe para aquellos que piensan que son inmunes al hombre en los ataques intermedios :)
Tim Post
1
La peor parte: escriba ypara ahorrar algo de tiempo, y se queja: Please type 'yes' or 'no': (hmph)
ADTC

Respuestas:

235

Usa la -oopción,

ssh -o "StrictHostKeyChecking no" user@host
el friki
fuente
1
Es posible que desee utilizar un archivo de identidad alternativo con la bandera '-i'
MUY Bélgica
¿De qué sirve usar un archivo de identidad alternativo? Quiero decir, si te estás conectando a un host comprometido, ¿qué diferencia hay en cómo te autenticas? No es que el host comprometido pueda robar tu clave también.
Dagelf
102

Agregue las siguientes líneas al comienzo de /etc/ssh/ssh_config...

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

Opciones:

  • La subred del host puede *permitir el acceso sin restricciones a todas las IP.
  • Edite /etc/ssh/ssh_configpara la configuración global o ~/.ssh/configpara la configuración específica del usuario.

Ver http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

JimFred
fuente
2
Lástima que solo pueda votarte una vez. Establecer KnownHosts en / dev / null es genial.
J0hnG4lt
1
Eres el más inteligente.
Darth Egregious
30
¡Decir ah! Dile a mi esposa.
JimFred
30

Solo debería obtener esto la primera vez que se conecte a un nuevo host. Después de responder, yesel host se almacena ~/.ssh/known_hostsy no se le solicitará la próxima vez que se conecte.

Tenga en cuenta que si ~/.ssh/known_hostsno se puede escribir por algún motivo (por ejemplo, un problema de permisos), se le solicitará cada vez que se conecte.

Paul R
fuente
77
La pregunta es ¿hay alguna forma de evitar el aviso?
shantanuo
Intenté agregar "CheckHostIP no" al archivo / etc / ssh / ssh_config. Pero no parece estar funcionando
shantanuo
2
sudo chown -R usuario: usuario .ssh; sudo chmod 700 .ssh; sudo chmod -R 600 .ssh /; ssh-keygen -R $ hostname y vuelva a conectar eso debería eliminar TODOS los problemas y SOLO volver a solicitar si un ssk_Hostkey está sucio | cambiado o eres víctima de un MITM.
linuxdev2013
1
dice "todo el tiempo", por lo que esta respuesta es muy apropiada
tarikakyol
12

La mejor manera (porque no sacrifica la seguridad) es conectarse una vez a todas las computadoras desde un cliente (se le pedirá cada vez, siempre responda sí). Como se señaló en la otra respuesta, las claves se almacenarán en ~ / .ssh / known_hosts. Luego, copie este archivo en cada computadora cliente desde la que desee conectarse más tarde (posiblemente para cada cuenta de usuario que use). Entonces todas estas cuentas "conocerán" las computadoras, por lo tanto, no se le solicitará.

La ventaja sobre simplemente deshabilitar el indicador es que SSH realmente puede verificar si hay un ataque MITM.

sleske
fuente
1
Aunque, si a menudo ssh a través de conexiones directas, querrá agregar esto a / etc / ssh / ssh_config: Host 127.0.0.1 NoHostAuthenticationForLocalhost yes
Dagelf
1

Si desea deshabilitar la confirmación, en lugar de la autenticación, puede usar la opción: "-o CheckHostIP = no"

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no [email protected]
RJ
fuente
El OP ya recibió la misma respuesta y la aceptó.
Ayan
0

Esto probablemente se deba a que su servidor de claves ssh cambió, ya que la dirección IP o el dominio del servidor son iguales pero la clave ssh no coincide.

Debe eliminar la clave almacenada /home/$user/.ssh/known_hostspara evitar este mensaje.

Lo arreglé eliminando todas las claves en ese archivo, por lo que se crea un nuevo token para este nombre de dominio.

IvanReed
fuente
1
Key cambiado produce un mensaje mucho más feo con una caja de atsigns y WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! y IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!en todas las tapas. El mensaje en la pregunta aparece solo si aún no hay una entrada known_hosts.
dave_thompson_085
-1

Verifique los permisos en su ~/.ssh/known_hostsarchivo. Los míos eran incorrectos cuando tuve este problema. Lo arreglé con:

chmod 0600 ~/.ssh/known_hosts
Andrew McCombe
fuente