He reinstalado mi servidor y recibo estos mensajes:
[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 RSA key sent by the remote host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA host key for pong has changed and you have requested strict checking.
Host key verification failed.
He probado varias soluciones que encontré en Internet. Mi known_hosts
archivo (normalmente en ~/.ssh/known_hosts
) está en /var/lib/sss/pubconf/known_hosts
. Intenté editarlo, pero permanece en un estado. He instalado ipa-client y tengo Fedora 19. ¿Cómo resuelvo esta advertencia?
Todas las respuestas respondidas hasta ahora funcionan solo si no tiene Freeipa instalado.
La respuesta correcta para freeipa en los comentarios a continuación de adrin está aquí .
ssh
verification
ipa
man-in-the-middle
Filip Dobrovolný
fuente
fuente
Respuestas:
Aquí está la solución más simple.
Por ejemplo,
Desde la
ssh-keygen
página del manual :-R hostname
Elimina todas las claves que pertenecen al nombre de host de un archivo conocido_hosts. Esta opción es útil para eliminar hosts hash (consulte la opción -H más arriba).fuente
ssh-keygen -R [127.0.0.1]:3022
. Simplemente revise su archivo .ssh / known_hosts para saber qué dice explícitamente.Utilizar
El ejemplo con una dirección IP / nombre de host sería:
Esto actualizará la ofensa de su host desde los conocidos_hosts. También puede proporcionar la ruta de los hosts_conocidos con el indicador -f.
fuente
$ ssh-keygen -R {server.name.com}
|$ ssh-keygen -R {ssh.server.ip.address}
El |$ ssh-keygen -R server.example.com
Tuve el mismo error después de recrear una imagen de Ubuntu Digital Ocean. Usé el siguiente comando con la dirección IP de mi servidor en lugar de
[IP_ADDRESS]
fuente
Cuando reinstala el servidor, su identidad cambia y comenzará a recibir este mensaje. Ssh no tiene forma de saber si ha cambiado el servidor al que se conecta o si se ha agregado un servidor en el medio a su red para detectar todas sus comunicaciones, por lo que le llama la atención.
Simplemente elimine la clave de known_hosts eliminando la entrada correspondiente:
El
4d
está en la cuenta deOffending RSA ...known_hosts:4
fuente
sed -i -e 4d /var/lib/sss/pubconf/known_hosts
identification
en caso de que desee reconstruir el servidor sin causar interrupciones como este mensaje de error?El mazo es eliminar cada host conocido de una sola vez:
Me encuentro con esto cuando utilizamos pequeñas subredes de servidores de corta duración desde una caja de salto, y con frecuencia tenemos la reutilización de la dirección IP interna de los servidores que comparten la misma clave ssh.
fuente
known_hosts
está destinado a prevenir). Solo haga esto si está seguro de que todos los hosts están seguros.El problema es que previamente ha aceptado una conexión SSH a una computadora remota y la huella digital digital de esa computadora remota o la clave hash SHA256 ha cambiado desde la última vez que se conectó. Por lo tanto, cuando intente SSH nuevamente o use github para extraer el código, que también usa SSH, obtendrá un error. ¿Por qué? Porque está utilizando la misma dirección de computadora remota que antes pero la computadora remota responde con una huella digital diferente. Por lo tanto, es posible que alguien esté falsificando la computadora a la que se conectó anteriormente. Este es un problema de seguridad.
Si está 100% seguro de que la computadora remota no se ve comprometida, pirateada, falsificada, etc., entonces todo lo que necesita hacer es eliminar la entrada en su archivo conocido_hosts para la computadora remota. Eso resolverá el problema ya que ya no habrá una falta de coincidencia con las ID de huella digital SHA256 al conectarse.
En Mac esto es lo que hice:
1) Encuentre la línea de salida que lee
RSA host key for servername:port has changed and you have requested strict checking.
Necesitará tanto el nombre del servidor como el puerto potencial de esa salida de registro.2) Haga una copia de seguridad del archivo de hosts conocidos de SSH
cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak
3) Busque la línea donde está almacenada la huella digital anterior de la computadora y elimínela. Puede buscar la huella digital de la computadora remota infractora específica utilizando el nombre del servidor y el puerto del paso 1.
nano /Users/yourmacusername/.ssh/known_hosts
4) CTRL-X para salir y elegir Y para guardar los cambios
Ahora escriba
ssh -p port servername
y recibirá el mensaje original que recibió cuando intentó enviar SSH a esa computadora. Luego se le dará la opción de guardar la huella digital SHA256 actualizada de esa computadora remota en su archivo conocido_hosts. Si está utilizando SSH sobre el puerto 22, entonces el argumento -p no es necesario.Cualquier problema que pueda restaurar el archivo conocido de host_hosts original:
cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts
fuente
ssh-keygen -R [IP_ADDRESS]
no funcionaba para mí. ¡Gracias!Como muchos ya han dicho, use
ssh-keygen
, es decirAdemás, puede considerar desactivar temporalmente la comprobación de la clave del host:
fuente
Host ???? CheckHostIP no StrictHostKeyChecking no
(3 líneas, tabuladas a partir del 2)¡Funciona para mi!
Esto indica que tiene una clave RSA infractora en la línea no. 4 4
Solución 1 :
Solución 2:
O
Solución 3:
Esto eliminará la
4th
línea de/root/.ssh/known_hosts
in place (-i
).fuente
Usé la solución de mockinterface, aunque el sed -i no funcionó del todo, lo resolví eliminando la línea a mano con vim:
Puede usar cualquier otro editor de texto que desee, pero probablemente tendrá que mostrar sus privilegios administrativos
fuente
Para usuarios de Mac, puede usar la
-R
bandera delssh-keygen
comando. Ejemplo rápido:THE_IP_ADDRESS
siendo la IP en la que estás intentando ingresar. Y luego puedes conectarte bien.fuente
Esto se debe a que la configuración de su computadora remota ha cambiado. Elimina tus claves actuales para eso.
vim /root/.ssh/known_hosts
Elimine la línea de la IP que está conectando.
fuente
Edite
/home/hostname /.ssh/known_hosts
y elimine las 4 líneas y guárdelo.Luego ejecute
ssh root@pong
nuevamente, verá un mensaje como este:Are you sure you want to continue connecting (yes/no)? yes
simplemente imprimayes
.fuente
Las otras respuestas aquí son buenas y funcionan, de todos modos, resolví el problema eliminando
~/.ssh/known_hosts
. Esto ciertamente resuelve el problema, pero probablemente no sea el mejor enfoque.fuente
En mi caso, sucedió porque anteriormente tenía conexión ssh con una máquina con la misma ip (por ejemplo, 192.152.51.10) y el sistema estaba considerando la clave RSA (almacenada en /home/user_name/.ssh/known_hosts) del host anterior que resultó en desajuste
Para resolver este problema, debe eliminar la clave RSA previamente almacenada para la ip 192.152.51.10 .
fuente
Solución simple de una línea, probada en mac:
Elimina solo la IP del host ssh de destino de los hosts conocidos.
donde 212.156.48.110 se reemplaza por la dirección IP del host de destino.
Causa : sucedió porque la IP de destino ya era conocida para una máquina diferente debido al reenvío de puertos. Eliminar la IP de destino antes de conectarse solucionará el problema.
fuente
Usa este comando:
fuente
Elimina esa entrada de known_hosts usando:
Esto eliminará la IP problemática o el nombre de host del archivo known_hosts e intentará conectarse nuevamente.
De las páginas del manual:
fuente
Solo haz:
cd /home/user/.ssh/
-> aquíuser
estará tu nombre de usuario, es decir,/home/jon/
por ejemplo.Entonces
gedit known_hosts &
y elimine el contenido dentro de él.Ahora de
ssh
nuevo, debería funcionar.fuente
Si está intentando conectarse al contenedor de Docker en ejecución en el puerto 2222 con el comando y obtiene el error
Luego, para resolver este problema, en su computadora local (es decir, la máquina host no el contenedor) vaya
cd ~/.ssh/
y abra elknown_hosts
archivo con el editor de texto. Elimine la línea que comienza con[localhost]:2222
y guarde el archivo. Ahora intenta ssh nuevamenteEl error desaparecerá, pero debe hacerlo cada vez que se reinicie el contenedor.
fuente
Mi solución es:
vi ~/.ssh/known_hosts
Esto es mejor que eliminar todos los
known_hosts
fuente
Solo problema del lado del cliente (clave duplicada para ip):
Resolver variantes:
Para clear one ip (puerto predeterminado 22):
Para una ip ( puerto no predeterminado ):
Borre rápidamente todos los ips:
7.7.7.7 - ssh su servidor ip connect
333 - puerto no estándar
fuente
A veces, si por alguna razón, necesita reinstalar un servidor, cuando se conecte por ssh descubriremos que su servidor dice que la identificación ha cambiado. Si sabemos que no se trata de un ataque , pero que hemos restablecido el sistema, podemos eliminar la identificación anterior de conocido_hosts usando ssh-keygen:
Al volver a conectarse, le pediremos que valide la nueva huella digital:
fuente
Tuve este problema, y la razón es muy simple, tengo una dirección IP duplicada para iniciar sesión en ssh, por lo que después de modificar este problema, todo está resuelto.
fuente
Tuve el mismo error en mi máquina y borré el
known_hosts
archivo, y después de eso, funciona bien.fuente
authorized_keys
cuando tiene un problema con elknown_hosts
archivoSOLUCIÓN:
1- eliminar de "$ HOME / .ssh / known_hosts" la línea que se refiere al host con la cual es imposible conectarse.
2- ejecute este comando: ssh-keygen -R "IP_ADDRESSorHOSTNAME" (sustituya "IP_ADDRESSorHOSTNAME" con su IP de destino o nombre de host de destino)
3- Vuelva a intentar la conexión ssh (si falla, verifique el permiso en el directorio .ssh, debe ser 700)
fuente
Mi solución en UBUNTU (linux):
1.Debe eliminar el contenido del archivo "known_hosts" que se encuentra en "/home/YOUR_USERNAME/.ssh/known_hosts"
2.Genere una nueva clave ssh como "ssh-keygen -t rsa -C" [email protected] "-b 4096"
3.Copie y pegue su nueva clave ssh en su repositorio git (gitlab en mi caso) claves SSH.
Esto funciona para mi !
fuente
AWS EC2.
Encuentra la ip en el mensaje que te da.
correr
Use las teclas de flecha para encontrar la ip del mensaje y haga clic.
Esto eliminará esa línea y luego ejecutará escape
Esto te ahorrará, entonces estás listo para comenzar.
fuente