Error de Git: "Falló la verificación de la clave del host" al conectarse al repositorio remoto

Resuelto bootsz asked hace 12 años • 34 respuestas

Estoy intentando conectarme a un repositorio Git remoto que reside en mi servidor web y clonarlo en mi máquina.

Estoy usando el siguiente formato para mi comando:

git clone ssh://[email protected]/repository.git

Esto ha funcionado bien para la mayoría de los miembros de mi equipo. Por lo general, después de ejecutar este comando, Git solicitará la contraseña del usuario y luego ejecutará la clonación. Sin embargo, cuando lo ejecuto en una de mis máquinas, aparece el siguiente error:

Error en la verificación de la clave del host.

fatal: no se pudo leer desde el repositorio remoto.

No utilizamos claves SSH para conectarnos a este repositorio, por lo que no estoy seguro de por qué Git busca una en esta máquina en particular.

bootsz avatar Nov 13 '12 22:11 bootsz
Aceptado

Como respondí anteriormente en Clonar git repo provoca un error: falló la verificación de la clave del host. fatal: El extremo remoto se colgó inesperadamente , agregue GitHub a la lista de hosts conocidos:

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
Tupy avatar Apr 01 '2015 00:04 Tupy

Te estás conectando a través del protocolo SSH, como lo indica el ssh://prefijo en la URL de tu clon. Al utilizar SSH, cada host tiene una clave. Los clientes recuerdan la clave de host asociada con una dirección particular y se niegan a conectarse si una clave de host parece cambiar. Esto evita los ataques del hombre en el medio.

La clave de host domain.exampleha cambiado. Si esto no le parece sospechoso , elimine la clave antigua de su caché local editándola ${HOME}/.ssh/known_hostspara eliminar la línea domain.exampleo dejando que una utilidad SSH lo haga por usted.

ssh-keygen -R domain.example

Desde aquí, registre la clave actualizada ya sea haciéndolo usted mismo con

ssh-keyscan -t rsa domain.example >> ~/.ssh/known_hosts

o, de manera equivalente, deja sshque lo haga por ti la próxima vez que te conectes con git fetch, git pull, o git push(o incluso simplemente ssh domain.example) respondiendo sí cuando se te solicite

No se puede establecer la autenticidad del host 'dominio.ejemplo (abcd)'.
La huella digital de la clave RSA es XX:XX:...:XX.
¿Estás seguro de que quieres continuar conectándote (sí/no)?

El motivo de este mensaje es domain.exampleque ya no está en su servidor known_hostsdespués de eliminarlo y presumiblemente tampoco en el sistema /etc/ssh/ssh_known_hosts, por lo que sshno hay forma de saber si el host en el otro extremo de la conexión es realmente domain.example. (Si la clave incorrecta está en /etc, alguien con privilegios administrativos tendrá que actualizar el archivo de todo el sistema).

Le recomiendo encarecidamente que considere que los usuarios también se autentiquen con claves. De esa manera, ssh-agentpuede almacenar material de claves para su comodidad (en lugar de que todos tengan que ingresar su contraseña para cada conexión al servidor), y las contraseñas no pasan por la red.

Greg Bacon avatar Nov 13 '2012 15:11 Greg Bacon

Tuve un problema similar, pero usando claves SSH. A partir de la respuesta de Tupy anterior, descubrí que el problema es que el archivo conocido_hosts no está presente o que github.com no está presente en la lista de hosts conocidos. Estos son los pasos que seguí para resolverlo:

  1. mkdir -p ~/.ssh
  2. ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
  3. ssh-keygen -t rsa -C "user.email"
  4. abra la clave pública con este comando $ cat ~/.ssh/id_rsa.puby cópiela.
  5. Agregue la clave id_rsa.pub a la lista de claves SSH en su perfil de GitHub.
Saran avatar Apr 28 '2015 00:04 Saran

Esto sucede porque github no se encuentra actualmente en sus hosts conocidos.

Se le pedirá que agregue github a sus hosts conocidos. Si esto no ha sucedido, puede ejecutar ssh -T [email protected]para recibir el mensaje nuevamente.

Powderham avatar Nov 01 '2017 09:11 Powderham