C贸mo corregir: “ADVERTENCIA: LA IDENTIFICACI脫N DEL HOST REMOTO HA CAMBIADO” en Mac y Linux

    SSH, o Secure Shell, es una forma muy com煤n de acceder de forma segura a m谩quinas remotas, generalmente a trav茅s de la l铆nea de comandos. Su objetivo es garantizar que su conexi贸n y, por lo tanto, todos los datos transmitidos, est茅n libres de escuchas. Debido a esto, hay bastantes comprobaciones integradas en los clientes SSH populares, como OpenSSH, que aseguran que su conexi贸n no se vea comprometida.

    Un ejemplo de una de estas comprobaciones es la siguiente, que identifica cu谩ndo ha cambiado la huella digital de un servidor:

    $ ssh [email聽protected]
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    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 ECDSA key sent by the remote host is
    SHA256:hotsxb/qVi1/ycUU2wXF6mfGH++Yk7WYZv0r+tIhg4I.
    Please contact your system administrator.
    Add correct host key in /Users/scott/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in /Users/scott/.ssh/known_hosts:47
    ECDSA host key for ec2-192-168-1-1.compute-1.amazonaws.com has changed and you have requested strict checking.
    Host key verification failed.
    

    Cuando se conecta a un servidor a trav茅s de SSH, obtiene una huella digital para el ECDSA clave, que luego guarda en su directorio de inicio bajo ~/.ssh/known_hosts. Esto se hace despu茅s de conectarse por primera vez al servidor y le mostrar谩 un mensaje como este:

    $ ssh [email聽protected]
    The authenticity of host 'ec2-192-168-1-1.compute-1.amazonaws.com (192.168.1.1)' can't be established.
    ECDSA key fingerprint is SHA256:hotsxb/qVi1/ycUU2wXF6mfGH++Yk7WYZv0r+tIhg4I.
    Are you sure you want to continue connecting (yes/no)? 
    

    Si ingresa ‘s铆’, la huella digital se guarda en el known_hosts , que SSH luego consulta cada vez que se conecta a ese servidor.

    Pero, 驴qu茅 sucede si la clave ECDSA de un servidor ha cambiado desde la 煤ltima vez que se conect贸 a 茅l? Esto es alarmante porque en realidad podr铆a significar que se est谩 conectando a un servidor diferente sin saberlo. Si este nuevo servidor es malicioso, entonces podr谩 ver todos los datos enviados hacia y desde su conexi贸n, que podr铆an ser utilizados por quien haya configurado el servidor. Esto se llama ataque man-in-the-middle. Este escenario es exactamente lo que la “ADVERTENCIA: 隆LA IDENTIFICACI脫N DEL HOST REMOTO HA CAMBIADO!” mensaje est谩 tratando de advertirle sobre.

    Por supuesto, este no es siempre el caso, y hay muchas razones para que la huella digital de la clave ECDSA cambie para un servidor. En mi caso, ten铆a una direcci贸n IP el谩stica en AWS y la asignaba a un servidor diferente despu茅s de volver a implementar nuestra aplicaci贸n. La direcci贸n IP y el nombre de host al que me estaba conectando eran los mismos, pero el servidor subyacente era diferente, que es lo que hizo que el cliente SSH emitiera esta advertencia.

    Solucionar el problema

    Si est谩 100% seguro de que se trataba de un comportamiento esperado y de que no hay ning煤n problema de seguridad potencial, deber谩 solucionar el problema antes de continuar.

    Las formas m谩s f谩ciles que he encontrado para solucionar este problema son las siguientes dos soluciones.

    Resolver manualmente a trav茅s de known_hosts

    • En el mensaje de advertencia, busque la l铆nea que le indica d贸nde se encuentra la clave ECDSA infractora en el known_hosts archivo. En mi ejemplo, esta l铆nea dec铆a “Clave ECDSA ofensiva en /Users/scott/.ssh/known_hosts:47”, que se refiere a la l铆nea 47.
    • Abre el known_hosts archivo especificado en el mensaje de advertencia
    • Eliminar la l铆nea especificada en el mensaje de advertencia

    Al eliminar esta l铆nea, su cliente SSH no tendr谩 una huella digital de clave ECDSA para comparar y, por lo tanto, le pedir谩 nuevamente que verifique la autenticidad del servidor la pr贸xima vez que se conecte. Una vez hecho esto, tendr谩 una nueva huella digital en nuestro known_hosts para este servidor y la advertencia desaparecer谩.

    Resolver usando ssh-keygen

    Otra soluci贸n ser铆a utilizar el ssh-keygen utilidad para eliminar la clave infractora de su known_hosts archivo, que se puede hacer con el siguiente comando:

    $ ssh-keygen -R [hostname-or-IP]
    

    Entonces, en mi ejemplo, lo usar铆a as铆:

    $ ssh-keygen -R ec2-192-168-1-1.compute-1.amazonaws.com
    

    Este m茅todo es bueno si no desea modificar manualmente el known_hosts archivo usted mismo, y la utilidad es m谩s f谩cil de usar si tiene varios nombres de host y direcciones IP para corregir. Tambi茅n puede manejar nombres de host hash en un known_hosts.old archivo.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *