Forzar a ssh a no imprimir la advertencia "La identificación remota del host ha cambiado"


23

¿Hay alguna manera de evitar mensajes de advertencia de impresión ssh como este?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

Aunque la identidad del host remoto ha cambiado, sé que está bien y solo quiero deshacerme de esta advertencia.

Respuestas:


16

Cuatro maneras:

Para conectarse una vez a un sistema con una nueva clave de host, sin tener que responder preguntas, conéctese con la siguiente opción:

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

Para eliminar permanentemente la advertencia para todos los sistemas, edite su ~/.ssh/configarchivo para agregar las siguientes líneas:

Host *
StrictHostKeyChecking no

Para eliminar permanentemente todas las advertencias para este un servidor, editar el ~/.ssh/configarchivo y añadir las siguientes líneas:

Host this.one.hostname
StrictHostKeyChecking no  

Para eliminar la advertencia de este cambio para este servidor, elimine la clave de host para ese servidor ~/.ssh/known_hosts. La próxima vez que se conecte, se agregará la nueva clave de host.


En la segunda opción, ¿esa configuración debe hacerse en el lado del servidor al que nos estamos conectando?
— coffeMug

No, es tuyo lo $HOME/.ssh/configque importa tanto en la segunda como en la tercera opción.
— Jenny D el

Esto todavía imprime una advertencia para mí (aunque sí permite la conexión).
— Michael Mior el

24

Agregue esto a su ~ / .ssh / config:

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 

3
MOD UP - solo uno que realmente respondió la pregunta - esta fue la única respuesta no solo para trabajar, sino para SUPRIMIR las ADVERTENCIAS.
— Brad

Vaya, parece que los usuarios de fish shell no podrán usar la función de autocompletar ssh agradable para hosts conectados previamente si ponen UserKnownHostFile en / dev / null. Los usuarios de Fish y posiblemente todos no deberían configurar eso.
— Elijah Lynn el

Es mejor que cree un ssh0script / alias / función ssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERRORy lo use expresamente en lugar de volcar esas opciones ~/.ssh/config. Puede olvidarse de ellos y luego preguntarse por qué los cheques no funcionaron cuando solo quería que funcionaran.
— Tío Billy

20

Puede quitar la línea para ese host ~/.ssh/known_host(cada host tiene una línea como entrada allí).

La alternativa es usar:

ssh -q -o "StrictHostKeyChecking no" ....

Solo el uso -qhabría sshfallado silenciosamente.


9

A veces no es conveniente agregar claves de host al valor predeterminado $ HOME / .ssh / known_hosts.

Úselo -o UserKnownHostsFile=/dev/nullademás de -qy -o StrictHostKeyChecking=nopara mantener conocido_hosts despejado. Aquí hay un ejemplo:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q user@scripts.local

2

Una sugerencia alternativa es identificar por qué la clave del host está cambiando y hacer que deje de hacerlo.

Como ejemplo: si está compilando hosts en contenedores o mediante un sistema de aprovisionamiento, asegúrese de que estos usen constantemente la misma clave de host conocida por instancia.

Sé que esto no siempre es posible, y los hosts pueden administrarse fuera de su alcance de control, pero esas advertencias de hostkey están ahí por una razón y son significativas. Reducir el recuento de excepciones es una buena cosa.

De lo contrario, voto por StrictHostKeyChecking No en su ~/.ssh/config para el host específico en cuestión solamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.