GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo reparar la clave infractora en el archivo ~/.ssh/known_hosts

Como discutimos anteriormente en nuestro artículo de comandos básicos del cliente ssh, cuando hace ssh a una máquina por primera vez (o cada vez que hay un cambio de clave en la máquina remota), se le pedirá que diga 'sí' para la autenticidad del host .

Esta función se controla mediante el parámetro ssh StrictHostKeyChecking. De forma predeterminada, StrictHostKeyChecking está establecido en sí.

La configuración predeterminada de "StrictHostKeyChecking yes" es la mejor opción desde el punto de vista de la seguridad para proteger su sistema contra ataques de caballos de Troya. Si no sabe lo que está haciendo, no debe establecer StrictHostKeyChecking en no.

A veces puede ser bueno desactivarlo temporalmente. Por ejemplo, la primera vez que se conecta a muchos hosts conocidos, es posible que desee desactivar esta función (es decir, pedir que sí las claves de host) y dejar que ssh agregue automáticamente todas las claves de host. Más tarde puede habilitar esta función.

Cuando haya configurado el inicio de sesión automático sin contraseña para un servidor y si la clave del host remoto sigue cambiando por un motivo (que sabe por qué está cambiando), puede considerar establecer StrictHostKeyChecking en no hasta que el problema de la clave del host remoto siga cambiando. arreglado.

Desde la línea de comando ssh, puede pasar la opción StrictHostKeyChecking como se muestra a continuación. También puede establecer esta opción en su archivo ssh_config

# ssh -o 'StrictHostKeyChecking no' user@host

Si está iniciando sesión en el servidor por primera vez, agregará permanentemente el RSA a la lista de hosts conocidos sin preguntarle .

Pero, si hay un cambio de clave (normalmente, si se reinstala el sistema operativo (o sshd), la clave del host remoto cambiará), entonces debe eliminar la clave anterior no válida como se muestra a continuación.

Eliminar la clave ssh infractora

Se mostrará el siguiente error cuando cambie la clave de host remoto (después de haberse conectado anteriormente con una clave de host remoto válida).

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
a7:a8:f2:97:94:33:58:b7:9d:bc:e0:a6:6b:f7:0a:29.
Please contact your system administrator.
Add correct host key in /home/ramesh/.ssh/known_hosts to get rid of this message.
Offending key in /home/ramesh/.ssh/known_hosts: 6
Permission denied (publickey,password).

Tienes que quitar la llave para continuar. Use el siguiente comando para eliminar la clave infractora.,

# sed -i '6d' ~/.ssh/known_hosts

Nota :Cambiar el 6d según el número de línea que se muestra.

Si su sed no tiene la opción -i, use perl o use algún editor para eliminar la clave infractora.

Solución Perl:

# perl -pi -e 's/\Q$_// if ($. == 6);' ~/.ssh/known_hosts

Nota :Cambie el número de línea de 6 al número de línea apropiado.


Linux
  1. Cómo configurar claves SSH

  2. [Linux]:Cómo aplicar hash a archivos de hosts conocidos del directorio ~/.ssh/

  3. Ssh – ¿Pasar contraseñas a un script?

  4. Cómo configurar claves SSH en Ubuntu 18.04

  5. Cómo corregir el error "Error en la verificación de la clave del host"

Cómo agregar una clave pública SSH al servidor

Cómo mejorar la seguridad SSH en Ubuntu 18.04

Cómo agregar una clave SSH a VS Code y conectarse a un host

Cómo convertir la clave privada de PuTTY (.ppk) en clave SSH

Cómo deshabilitar la verificación de clave de host SSH en Linux

Agregar clave pública al archivo unknown_hosts