it-swarm-es.com

¿Cómo eliminar la comprobación estricta de claves RSA en SSH y cuál es el problema aquí?

Tengo un servidor Linux que cada vez que me conecto me muestra el mensaje que cambió la clave del host SSH:

$ ssh root @ Host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @ ADVERTENCIA: ¡LA IDENTIFICACIÓN REMOTA DEL HABITANTE HA CAMBIADO! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ IT IS POSIBLE QUE ALGUIEN IS HACIENDO ALGO MALO! Alguien podría estar espiándote en este momento (man-in -the-middle attack)! También es posible que la clave del host RSA se haya cambiado. La huella digital de la clave RSA enviada por el host remoto es 93: a2: 1b: 1c: 5f: 3e: 68: 47: bf : 79: 56: 52: f0: ec: 03: 6b. Póngase en contacto con el administrador del sistema. Agregue la clave de host correcta en /home/emerson/.ssh/known_hosts para deshacerse de este mensaje. Tecla ofensiva en/home/emerson/.ssh/known_hosts: 377

La clave de host RSA para Host1 ha cambiado y usted ha solicitado una verificación estricta. La verificación de la clave del host ha fallado.

Me mantiene conectado durante unos segundos y luego cierra la conexión.

Host1: ~/.ssh # Lectura desde el host remoto host1: Restablecimiento de la conexión por parte del par La conexión al Host1 está cerrada.

¿Alguien sabe qué está pasando y qué puedo hacer para resolver este problema?

45
setatakahashi

No elimine todo el archivo conocido_hosts según lo recomendado por algunas personas, esto anula totalmente el punto de la advertencia. Es una característica de seguridad para advertirle que un hombre en el medio del ataque puede haber sucedido.

Le sugiero que identifique por qué cree que algo ha cambiado, lo más probable es que una actualización de SSH haya alterado las claves de cifrado debido a un posible agujero de seguridad. Luego puede purgar esa línea específica de su archivo conocido_hosts:

sed -i 377d ~/.ssh/known_hosts

Esto d elige la línea 377 como se muestra después de los dos puntos en la advertencia:

/home/emerson/.ssh/known_hosts:377

Alternativamente, puede eliminar la clave relevante haciendo lo siguiente

ssh-keygen -R 127.0.0.1 (obviously replace with the server's IP)

NO purgue todo el archivo y asegúrese de que esta sea realmente la máquina a la que desea conectarse antes de purgar la clave específica.

71
Adam Gibbins

Creo que aunque algunas de las respuestas aquí abordan el curso de acción recomendado en la pregunta del OP, no responde completamente la pregunta.

La pregunta dice "¿Cómo eliminar la comprobación estricta de claves RSA en SSH y cuál es el problema aquí?"

El problema aquí es, como lo aconsejaron algunos otros, un cambio en el Host probablemente debido a la reinstalación del servidor (escenario más común). Y la solución recomendada es eliminar la clave infractora del archivo .ssh/Authorizedkeys con un sed en línea.

Sin embargo, no vi ninguna respuesta que aborde la parte específica de la pregunta "Cómo eliminar la comprobación estricta de la clave RSA en SSH".

Puede eliminar la comprobación de StrictHostKey en su archivo de configuración ssh, generalmente almacenado en ~/.ssh/config.

A continuación se proporciona un ejemplo de bloque de host:

Host 101
  HostName yourip|hostname
  User youruserid
  IdentityFile /path/to/keyfile
  Port 22
  StrictHostKeyChecking no

La línea añadida específicamente es la última StrictHostKeyChecking no que hace exactamente eso. Dependiendo de su escenario específico, esto puede ser útil para usted, como ejecutar múltiples contenedores virtualizados en un servidor dedicado, con solo unos pocos ips, detener e iniciar otra instancia en la misma ip.

27
Joel G Mathew

Otra forma de eliminar StrictHostKeyChecking, cuando solo necesita hacerlo para un solo servidor:

ssh <server> -o StrictHostKeyChecking=no
11
Greg Dougherty

En primer lugar, ¿es esta tu máquina? ¿Cambiaste conscientemente las claves de Host? Si no, estaría muy preocupado de que algo haya alterado esos datos.

En segundo lugar, suba la depuración ssh,

ssh -vvv [email protected]

y vea lo que le dice, también intente buscar,/var/log/secure y/var/log/messages en el servidor al que está intentando conectarse para obtener pistas, sshd da buenos mensajes de error.

En tercer lugar, ¿esta máquina está conectada a internet? ¿Debería realmente permitir los inicios de sesión de root?

5
Dave Cheney

Como el 'Host' [ampliamente definido, podría ser todo, desde una reinstalación/arranque múltiple a una computadora completamente diferente con una dirección IP a la que te has conectado antes, por ejemplo] parece que el cliente ssh ha cambiado, te está dando el error.

No es necesario desactivar la comprobación estricta, ni tampoco es razonable la eliminación total de las claves guardadas.

Es muy posible tener dos claves diferentes enumeradas enhosting_hosts para un nombre de host o dirección IP en particular; dándole 2 alternativas según si cree que puede necesitar la clave 'antigua' que está actualmente almacenada en conocido_hosts

Elimine la clave particular a la que se refiere, en l377 de known_hosts para el OP, o mantenga ambos

La forma más sencilla de mantener ambos, evitando la eliminación de claves en conocido_hosts, es

  1. Edite conocido_hosts para agregar # al comienzo de la entrada 'antigua' referenciada en conocido_hosts [@ l377] temporalmente
  2. Conéctese [ssh al host], acepte la solicitud para agregar la nueva clave 'automáticamente'
  3. Luego vuelva a editar known_hosts para eliminar el #

más respuestas en "¿Añadir la clave de host correcta enhosts_hospedados"/varias claves de host ssh por nombre de host?

3
Mark

Obtiene esto porque algo ha cambiado (como nueva NIC, nueva IP, cambio en el software del servidor, etc.). El enfoque de seguridad tiene un buen artículo sobre Protección de clave de host SSH .

Simplemente quite la clave (usando SFTP o similar) del servidor, editando el $HOME/.ssh/known_hosts archivo, y acepte el nuevo en la próxima conexión.

Su conexión podría estar cayendo debido a la configuración StrictHostKeyChecking. Ver este hilo para un problema similar.

3
user1797