2012-04-15 14 views
15

Continuación del tema here: estoy tratando de configurar mi primer repositorio Git en GitHub. (Nota, esto significa que no puedo usar masilla, estoy usando openssh, o al menos se supone que debo hacerlo y creo que lo estoy). He estado siguiendo la documentación en el sitio web de GitHub here. Lo consigo todo hasta el último comando: git push -u origin master. Me da el siguiente error:clave del servidor de Git anfitrión no en caché en el registro - GitHub.com

The server's host key is not cached in the registry. 
You have no guarantee that the server is the computer you think it is. 
The server's rsa2 key fingerprint is: ssh-rsa 2048 
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 
Connection abandoned. fatal: The remote end hung up unexpectedly 

supongo que esto significa que, en mi archivo known_hosts no se encuentra la clave ssh-rsa, pero no estoy seguro de cómo arreglar eso. He intentado ssh -T [email protected] y me conecto perfectamente. También he intentado cerrar el git bash y volver a abrir en caso de que se trate de un problema de caché. Esto no soluciona el problema. Este es el único resultado que obtengo que difiere de lo que indica la documentación. Espero poner una dulce biblioteca de Java Helper, ¡así que cualquier ayuda sería muy apreciada!

+0

Weird ... como http://stackoverflow.com/questions/10156356/github-the-remote-end-hung-up-unexpectedly/10156776#comment13041705_10156776. La misma pregunta: ¿'$ HOME/ssh/known_hosts' existe? ¿Está bien definido '$ HOME' (o'% HOME% 'en una sesión de DOS' git-cmd.bat')? (como se ilustra en http://stackoverflow.com/questions/10122439/msysgit-and-ssh-config-missing/10122865#10122865) – VonC

+0

¿Por qué crees que no puedes usar la masilla? ¿Estás seguro de que ssh-agent se está ejecutando? He usado tanto Plink.exe como ssh.exe para conectarme a Github. Publica tu .git/config si pudieras. –

+0

Además, ¿tiene la variable de entorno GIT_SSH configurada? –

Respuesta

6

La solución ideal sería (si es que realmente no necesita utilizar plink en Git) eliminar la variable de entorno GIT_SSH y generar un nuevo par de claves con el comando ssh-keygen -t rsa -C "youremail" en Git Bash luego cambia de ssh clave en github porque de lo que he entendido por los comentarios es putty y openssh es conflictivo.

Sin embargo, si todavía quiere usar plink puede usar PuTTYgen para generar una clave de formato PuTTY, luego cambie su clave pública en github y cargue su clave privada en PuTTYagent luego debe hacer una conexión a github.com con PuTTY este agregaría la huella dactilar githubs a known_hosts y ya está listo. Esto sería un recurso para github con PuTTY http://nathanj.github.com/gitguide/tour.html

+0

Eliminé la variable de entorno (porque si GitHub está diciendo la verdad, solo puedo usar OpenSSH) y traté de crear un nuevo par de claves. Lo agregué con éxito a mi cuenta en GitHub y autenticado con 'ssh -T git @ github.com', pero cuando intenté llamar a' git push -u origin master', me dio el error 'No hay métodos de autenticación compatibles disponibles nuevamente. Supongo que esto se debe a que no tengo una alternativa para plink.exe en mis variables de entorno, pero ... sí, ¿cómo puedo dar un método de autenticación compatible con OpenSSH? – kentcdodds

+0

No tengo una variable GIT_SSH así como la mía funciona bien, no es el caso, ¿puedes intentar ejecutar ese comando en modo detallado 'git push -vu origin master' que arrojaría alguna información de depuración sobre lo que realmente falló. – Learath2

+0

El único cambio fue antes de que salga el error que salió: 'Empujando a [email protected]: kentcdodds/Java-Helper.git' – kentcdodds

6

En Windows, parece que a veces no acepta realmente la clave de host de un servidor.

probar uno de los siguientes comandos del Shell de energía:

ssh github.com 

O

plink.exe -agent github.com 

ejecutar estos autónomo y pulse y cuando se le preguntó a aceptar la clave de host.

Uso ssh-add para agregar su clave privada a la actual sesión de la Consola de energía:

C:> ssh-add PATH\TO\PRIVATE\KEY 

Después, usted debe ser capaz de ejecutar con éxito git push.

Fuente: http://help.github.com/ssh-issues/

+0

'ssh github.com' me da un' Permiso denegado (publickey) 'y el' plink.exe -agent github.com' me pregunta si quiero guardar la clave en el chache. Digo que sí, luego dice 'login as:' y probé mi nombre de usuario github y tampoco nada, y ambos me dan un error 'No hay métodos de autenticación compatibles '. Tenga en cuenta que en esta sesión me he autenticado con 'ssh -T git @ github.com'. Estoy en una pérdida total ... – kentcdodds

+0

Jaja, lo siento, debería haber explicado lo que sucede cuando intento presionar. Ahora, cuando intento 'git push -u origin master' obtengo' FATAL ERROR: desconectado: no hay métodos de autenticación de soporte disponibles (servidor enviado: publickey) 'y se desconecta. – kentcdodds

+0

Gracias por la edición. Desafortunadamente, cuando trato de agregar la clave privada generada desde Git Bash, el concurso me da 'No se puede cargar esta clave (OpenSSH SSH-2 clave privada)'. Solo por las patadas, probé el archivo de clave pública y dice 'No se pudo cargar esta clave (no una clave privada)'. Cuando intento agregar una clave, el archivo que está buscando es 'PuTTY private key file (* .ppk)'. Mi clave privada generada por Git Bash no tiene una extensión de archivo y la clave pública tiene una extensión de pub ... Además, estoy bastante seguro de que mi clave privada se supone que es OpenSSH, no PuTTY (según la documentación de github.com) – kentcdodds

15

Usando git-for-windows con GIT_SSH apuntando a plink.exe, abriendo una masilla al servidor y aceptando la clave de host (y luego matando la sesión de masilla, sin siquiera proceder con iniciar sesión) fue suficiente para resolver este problema para mí.

2

Añadiendo información a la publicación de @Name (para completar), ya que tuve (nuevamente) este problema hoy.

Putty almacena sus hosts conocidos SSH in a registry key, no en el archivo ~/.ssh/known_hosts como SSH. Entonces, para hacer que Git trabaje con PLINTY y Pagent, solo tiene que iniciar una sesión de Putty en el servidor remoto de GIT, y aceptar la clave. De esta manera, no tendrás el mensaje nuevamente.

Esto es inquietante, ya que tiene que aceptar la clave SSH dos veces: una para SSH-ing el servidor, una para Putty/Plink/Pagent, pero una vez que lo hace, funciona como un encanto.

Cuestiones relacionadas