
He estado usando ssh para iniciar sesión en un servidor remoto que alquilo durante varios años. La semana pasada recibí un mensaje de ellos diciendo que habían actualizado mi cuenta y mi servidor. Ahora cuando voy a iniciar sesión, recibo este mensaje de ssh
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for mydomain.com has changed,
and the key for the corresponding IP address X.X.X.X
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
XXxXXXXXXX
Please contact your system administrator.
Add correct host key in /home/myaccount/.ssh/known_hosts to get rid of this message.
Offending key in /home/myaccount/.ssh/known_hosts:7
RSA host key for mydomain.com has changed and you have requested strict checking.
Host key verification failed.
Ahora, supongo que esto se debe a que mi host actualizó mi servidor. Por eso quiero volver a confiar en este sitio. Pero no veo muy bien cómo.
Miré enknown_hosts y todo lo que hay son claves públicas. Pero no puedo decir cuál de ellos proviene de la versión anterior de este servidor en particular. Tampoco sé cómo conseguir una clave correcta para el host; La vez anterior que hice contacto, creo que ssh simplemente lo confirmó conmigo y lo guardó automáticamente. Ahora dice que solicité una verificación estricta, pero no tengo idea de cuándo lo hice ni dónde restablecerlo.
Respuesta1
La línea:
Offending key in /home/myaccount/.ssh/known_hosts:7
indica que la clave anterior está en la línea 7 de su archivoknown_hosts. Utilice su editor favorito para eliminar la línea 7. Eso debería hacer que desaparezca.
También puedes usar ssh-keygen -R para eliminar una entrada:
# ssh-keygen -R hostname -f ~/.ssh/known_hosts
Para su información, esas no son claves públicas sino una representación hash de los hosts.
Puede enumerar el archivo de hosts conocido con:
$ ssh-keygen -lv -f ~/.ssh/known_hosts
Luego mostrará la clave y la representación artística ascii:
2048 0f:3b:8a:02:75:f1:68:0f:32:8a:7a:0f:ef:69:f8:a0 |1|aa3F96t0nzhqLpt+lJx4msNAGQI=|740B4+NTrQhAx/DWXHf6QLrBpz8= (RSA)
+--[ RSA 2048]----+
| |
| . |
| = |
|o * . |
|o= o S |
|+ . + |
|..o. o . |
|..++.o . . |
|E. *B . |
+-----------------+
En teoría, imprime esto y guárdelo en un lugar seguro. Cuando sucede algo sospechoso, tienes una copia como referencia.
Respuesta2
Solo voy a agregar que antes de seguir el consejo de mis estimados compañeros de serverfaulties y borrar la línea de su archivoknown_hosts, debe hablar con el servicio de atención al cliente en el otro extremo y asegurarse de que hicieron algo que hubiera causado esta clave. cambiar.
Respuesta3
Deberá editar su archivo /home/myaccount/.ssh/known_hosts y eliminar la entrada que coincida con la dirección IP o el nombre de host de su servidor anterior. Luego, debe simplemente conectarse a su servidor como lo hace normalmente y le solicitará una nueva clave y le preguntará si desea agregarla. ¡Simplemente diga "sí" y listo! :) No debería volver a preguntarte a menos que algo haya cambiado.
Espero que ayude.
EDITAR: lo más probable es que su entrada deknown_hosts se vea así
[nombre de host o dirección IP] [tipo de clave, generalmente ssh-rsa] [clave aquí, es decir, ASDFJAKj3klje35u9086095468kjflADf...]