Puedo conectarme a otra máquina Ubuntu en mi LAN a través de SSH. En ambas PC instalé el servidor openssh pero desde otra computadora Ubuntu no puedo conectarme a mi PC a través de SSH y recibí este error:
La verificación de la clave del host ha fallado ...
ssh
de la línea de comandos.Respuestas:
"Anfitrión verificación de clave no se ha" significa que el anfitrión clave del host remoto se ha cambiado.
SSH almacena las claves de host de los hosts remotos en
~/.ssh/known_hosts
. Puede editar ese archivo de texto manualmente y eliminar la clave anterior (puede ver el número de línea en el mensaje de error), o usarDesde la página del manual :
(que aprendí de la respuesta a ¿Es posible eliminar una clave de host particular del archivo conocido_hosts de SSH? ).
fuente
rm ~/.ssh/*
, entoncesssh -o BatchMode=yes root@somewhere
, si nada más está mal, obtendréHost key verification failed.
No importante si siempre eres interactivo, pero relevante para los scripts que encuentran el mismo error.ssh-keygen -R example.net:7999
rendimientosHost example.net:7999 not found in known_hosts
.known_hosts
archivo y ssh nuevamente. Funcionó.~/.ssh/known_hosts
es ilegibleSi está ejecutando ciertas situaciones remotas / de secuencias de comandos en las que carece de acceso interactivo a la solicitud de agregar hostkey, evite esto de la siguiente manera:
Advertencia: se agregó permanentemente 'something.example.com, 10.11.12.13' (RSA) a la lista de hosts conocidos.
fuente
sh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
Además, a veces hay una situación en la que está trabajando en la consola en serie, luego, al verificar el comando anterior en modo detallado,
-v
se mostrará que/dev/tty
no existe, mientras que sí existe.En el caso anterior, simplemente elimine
/dev/tty
y cree un enlace simbólico de/dev/ttyS0
to/dev/tty
.Como alternativa, agregue
id_rsa.pub
a la ubicación remota, de modo que no se solicite la contraseña y obtenga acceso de inicio de sesión.fuente
En mi caso, esto fue causado por un problema de udev: no había ningún
/dev/tty
nodo de dispositivo. La solución para mí fue solo:fuente
En terminal:
Aparecerá el siguiente mensaje, o similar:
Luego, conéctese a su EC2 normalmente:
fuente
command-line line 0: Bad yes/no/ask argument.
porque usas erróneamente 'No' en lugar de 'no' como argumento paraStrictHostKeyChecking
Bueno, simplemente porque el segundo ubuntu requiere conexión por clave y no por contraseña.
Le sugiero que use
sudo dpkg-reconfigure openssh-server
en su PC, y luego debería funcionar correctamente. Se restablecerá la configuración de openssh y debería volver a una autenticación de contraseña predeterminada.La segunda posibilidad es que ya hay una clave para su otro ubuntu en su PC, y que cambió, por lo que ya no se reconoce. En este caso, tendrá que editar el archivo
.ssh/authorized_keys
para eliminar la línea problemática que identifica su ubuntu.fuente
Este es un hilo viejo y acabo de encontrar esta respuesta, solo agregaré lo que hice para resolver esto.
Acabo de mirar el mensaje de error que me arrojó y decía que ejecutara ese comando para eliminarlo de la lista de hosts. Después de eso hice lo siguiente:
Luego seguí las indicaciones desde allí hasta que pude ingresar al servidor.
fuente
Significa que se modificó su clave de host remoto (puede ser un cambio de contraseña de host),
Su terminal sugirió ejecutar este comando como usuario root
Debe eliminar ese nombre de host de la lista de hosts en su PC / servidor. Copie el comando sugerido y ejecútelo como usuario root.
Espero que esto funcione.
fuente
Debe cambiar su clave de esta manera: a partir de su error determinado, encuentre qué clave de host cambió, por ejemplo: la clave ECDSA ofensiva en /Users/user-name/.ssh/known_hosts:5 dijo que la quinta clave cambió, así que haga esto:
Aviso: debe ser root o tener privilegios para sudo.
fuente
debe poner la clave rsa del host de destino en el host de origen
/home/user/.ssh/known_hosts
ejecutándola en el destinofuente
Es posible que solo necesite ingresar "yes" cuando ssh confirme que desea continuar conectándose.
Como abajo.
Luego ingrese su contraseña.
Por favor, preste atención a "¿Está seguro de que desea continuar conectándose (sí / no)? Sí ". Debe ingresar sí, no ingresar.
fuente
Además de desactivar estrictamente la comprobación de la clave de host, también puede conectarse escribiendo:
fuente
pico ~/.ssh/known_hosts
y elimine todas las líneas, después de reconectarse y obtendrá una nueva clave.fuente
ssh-keygen -R hostname
es mejor.Mi solución proviene de esta publicación de blog: Error en la negociación del algoritmo para SSH Secure Shell Client
Necesita modificar el archivo de la siguiente manera:
Y luego agregue lo siguiente:
Básicamente, probó diferentes soluciones hasta que encuentre una que pueda resolver su problema. Si las soluciones anteriores no funcionan, intente con esta. Si este no funciona tan bien, intente con otros.
fuente
Simplemente haga "sudo vi /var/root/.ssh/known_hosts" y elimine la línea, que contiene una clave para un host al que está intentando conectarse y volver a conectarse.
No sé acerca de su situación particular, pero lo más probable es que este error haya aparecido con un mensaje como este:
Si lee el registro con más cuidado, verá que la clave que obtiene de un host está en conflicto con una clave que ya tiene; en este caso, está en la línea 74 del archivo known_hosts (clave ECDSA ofensiva en / var / root / .ssh / known_hosts: 74). Elimine la línea de conocido_hosts, guarde los cambios y vuelva a conectar.
fuente
es otra solución tty: a veces, este archivo de dispositivo tiene permisos incorrectos.
fuente