Recibí este mensaje hoy cuando intento iniciar sesión en mi servidor. ¿Qué tengo que hacer? ¿Que esta pasando?
$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
Please 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:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.
Respuestas:
¿Recientemente reinstaló el sistema operativo en su servidor o algo así? Eso causaría esto.
Para solucionar esto: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/
Solución n. ° 1: eliminar claves con ssh-keygen
Use la
-R
opción para eliminar todas las claves que pertenecen al nombre de host de un archivo conocido_hosts. Esta opción es útil para eliminar hosts hash. Si su nombre de host remoto es server.example.com, ingrese:Ahora, puede conectarse al host sin ningún problema.
Solución # 2: Agregue la clave de host correcta en
/home/user/.ssh/known_hosts
No es necesario eliminar todo el archivo conocido_hosts, solo la línea ofensiva en ese archivo. Por ejemplo, si tiene 3 servidores de la siguiente manera.
Para eliminar el segundo servidor (myserver.com), abra el archivo:
Y presione el comando dd para eliminar la línea. Guarde y cierre el archivo. O use siguiente
Ahora ve a la línea # 2, escribe el siguiente comando
Ahora borre la línea con dd y salga:
O puede usar el comando sed de la siguiente manera para eliminar la clave ofensiva en la línea # 44:
Solución 3: simplemente elimine el archivo known_hosts si solo tiene un servidor ssh
Intente conectarse con ssh nuevamente.
Ahora debería poder conectar su servidor a través de ssh:
A continuación, recibirá una nueva solicitud para agregar la clave de la
~/.ssh/known_hosts
siguiente manera:fuente
Por lo que puedo decir, todas estas respuestas tratan de suprimir la advertencia, en lugar de tratarla. En resumen, la advertencia le dice que el servidor no se ve como solía verse; vea https://en.wikipedia.org/wiki/Man_in_the_middle_attack para ver por qué esto puede ser un peligro.
Lea
man ssh
, especialmente esta sección:Para estar seguro, usted (o alguien de su confianza) debería haber ejecutado este comando primero en el servidor al que se está conectando. Le dará una huella digital parecida a la que aparece en la advertencia de la pregunta. Por supuesto, a menudo no tiene esta información, pero si tiene razones para sospechar que algo está funcionando, ejecutar ese comando es la forma de verificar si la firma del servidor realmente ha cambiado, o si puede haber algo sospechoso.
fuente
ssh -o FingerprintHash=md5 example.org
Me enfrenté al mismo problema, y si no desea eliminar todo el
known_hosts
archivo, puede ejecutar el siguiente comando:ssh-keygen -R 10.10.10.69
No hay ningún problema con la eliminación de conocido_hosts. Solo tendrá que agregar cada servidor al que se conecte, a la lista cada vez que se conecte a ellos. También podría arruinar sus scripts, porque aún no se confía en los hosts. La alerta se produce cuando la firma del host (la computadora que está intentando conectar a las nuevas claves generadas, generalmente debido a una reinstalación o rotación de claves).
fuente
Si cree que la advertencia es un falso positivo, puede eliminar sus / root / ssh / known_hosts para comenzar una nueva verificación.
fuente
Si recientemente reinstaló el servidor, o si cambió la clave de host, probablemente sea seguro eliminar la línea 8 de su archivo ~ / .ssh / known_hosts y volver a agregar el servidor (enviando un mensaje de texto y respondiendo "sí" "cuando solicita verificación de clave)
fuente
Como su servidor está en una red local, puede estar bastante seguro.
Si reinstaló su sistema, esto es normal, pero en lugar de eliminar su archivo known_hosts, recomendaría hacerlo
echo "" > ~/.ssh/known_hosts
fuente
ssh -q también hace este truco.
fuente
Copie esta línea, pero ingrese el nombre de usuario y el nombre de host / IP para
user
yremote-server
:Por ejemplo:
Y péguelo en su terminal local y ejecútelo. Esto funcionó para mí.
fuente
En el nodo del cliente donde está emitiendo el ssh,
Elimine todas las líneas que comienzan con direcciones IP que están en la misma red que la IP en la que está intentando ingresar. Esto obligará al nodo del cliente a agregar permanentemente (ECDSA) a la lista de hosts conocidos.
fuente