El mes pasado, decidí actualizar el servidor donde Nuestro Mundo del Código está actualmente alojado para un servidor genuinamente mejor. Como siempre hago, adquirí el nuevo servidor y comencé a configurarlo para migrar los datos del antiguo servidor. Después de un tiempo, fui al panel de administración del servidor en su sitio web para eliminar el antiguo archivo de clave raíz y me di cuenta de que el centro de datos donde se encontraba el servidor no estaba en América, sino en Francia. El centro de datos elegido era erróneo, así que solicité un nuevo servidor en América. Después del despliegue, instalé el nuevo sistema operativo, pero instalé la versión equivocada de Ubuntu (16 en lugar de 18.04), así que borré una vez más el servidorð¤£. Después de comprobar finalmente que todo lo que instalé la versión correcta de Ubuntu, traté de acceder al servidor a través de SSH, para mi sorpresa una vez más, terminé con otro error:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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 isXX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XXPlease contact your system administrator.Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5RSA host key for :22 has changed and you have requested strict checking.Host key verification failed.
El problema se debe a que se está conectando a un servidor en el que ya estaba conectado, pero cuyo host RSA cambió desde la última vez que se conectó a él (me conecté a la primera versión del servidor con Ubuntu 16.04 y luego trató de conectarse al mismo servidor con Ubuntu 18.04 y la excepción apareció). Para evitar cualquier fallo de seguridad, tendrás que eliminar esta clave del archivo known_hosts
de tu máquina local para poder conectarte correctamente.
A. Eliminar manualmente la clave infractora
Bueno, eliminar el archivo known_hosts es una solución válida siempre y cuando no te importe tener que confirmar cada vez que te conectas a algún servidor que la huella es válida, así que no elimines el archivo known_hosts
. La solución más fácil es simplemente eliminar la línea con el problema en el archivo, en nuestro caso el mensaje de excepción nos advirtió que la clave infractora está en la línea #5:
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
Así que sólo necesitarías o bien eliminar la línea, utilizando un único comando como este (sustituye el 5 por el número de tu línea):
sed -i '5d' ~/.ssh/known_hosts
Y ya está. Alternativamente, modifica el archivo known_hosts
usando un editor de terminal como nano o vim y elimina la línea por ti mismo.
B. Usando ssh-agent
Alternativamente, puede usar la herramienta ssh-keygen para simplemente eliminar la clave ofensiva si conoce el nombre de host/ip:
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Esto debería funcionar también para eliminar la advertencia de aparecer en la terminal.
¡Feliz codificación ❤️!