Sustituir una clave antigua de known_hosts
Es posible que más de una vez nos hayamos encontrado con un mensaje similar a éste:
jynus@clonmel2:~> ssh servidor-ssh @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 00:ff:00:ff:00:ff:00:ff:00:ff:00:ff:00:ff:00:ff. Please contact your system administrator. Add correct host key in /home/jynus/.ssh/known_hosts to get rid of this message. Offending key in /home/jynus/.ssh/known_hosts:8 RSA host key for localhost has changed and you have requested strict checking. Host key verification failed.
Este error se produce debido a que ha fallado la autenticación de la clave pública ssh del servidor. Esto podría ser debido a un intento de ataque man in the middle, o también simplemente que el administrador ha reinstalado el sistema en el que se ejecuta el servidor SSH y no ha recordado hacer copia de su clave. Esto provoca que por seguridad, en clientes configurados con la opción StrictHostKeyChecking=yes no te permita conectar al servidor.
Una manera rápida de solucionar esto sería conectar forzando ignorar este aviso:
jynus@clonmel2:~> ssh -o "StrictHostKeyChecking=yes" servidor-ssh
Por supuesto, esta no es la manera más adecuada de hacerlo, primero, porque si lo hacemos sin ninguna comprobación podríamos ser víctimas de ataque que hablábamos antes, y segundo, porque el aviso no desaparecerá en futuras conexiones.
Si efectivamente verificamos que se trata de una simple cambio de IP, DNS o reinstalación de sistema (comprobando que el nuevo fingerprint coincide con el del servidor), tenemos que borrar la clave vieja. Antiguamente, podíamos editar el archivo ~/.ssh/known_hosts directamente, pero actualmente los nombres de los hosts en este archivo estan “ocultos” mediante HMAC. Es por ello que para borrar dicha clave tendremos que ejecutar:
ssh-keygen -R servidor-ssh
La próxima vez que conectemos, el cliente ssh preguntará si deseamos conectar y guardar la nueva clave.






febrero 18th, 2009 at 09:16
En realidad en el mensaje inicial te está diciendo qué línea es la que tienes que borrar Offending key in/home/jynus/.ssh/known_hosts:8, pero este método del ssh-keygen me mola bastante más
, lo probaré la próxima vez que me ocurra, ¡gracias!
agosto 18th, 2009 at 12:45
buena, gracias por el dato.