2011-03-18 18 views
19

Tengo un extraño problema con tortuga git en este momento, que no puedo entender. Cuando se trata de comprometerse a mi repositorio en GitHub consigo el errorTortoiseGit usando la clave SSH incorrecta

ERROR: Permission to martindevans/Hermes.git denied to key2

Key2 es una clave que utilizo para acceder a un repositorio GitHub diferente, sin embargo la URL remoto no está configurado para utilizar clave2, como se puede ver aquí es listo para usar private.ppk

enter image description here

Estoy haciendo algo obviamente incorrecto, o se rompe git tortuga?

Nb. En respuesta a los comentarios. Utilizando los resultados normales en git:

C:\Users\Martin\Documents\Visual Studio 2010\Projects\Hermes>git push 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 
+0

¿Funciona correctamente si usa Git regular sin tortuga? –

+0

No, el mismo error – Martin

+1

¡Gran pregunta! Y ahora que tiene una respuesta con muchos votos, ¿consideraría marcarla como tal? –

Respuesta

30

Existen diferentes formatos de clave privada. Mi par de llaves se generó con puttygen, pero mi Tortoise se configuró para usar ssh.exe (form msysgit) como ssh-client. Así que lo cambié a plink (de Tortoise) y funcionó.

  • ssh-key.exe => ssh.exe (C: \ msysgit \ msysgit \ bin)
  • puttygen.exe => TortoisePlink.exe (C: \ Archivos de programa \ TortoiseGit \ bin)

Nota adicional: ¡utilice la URL correcta! Github le ofrece tres URL https, git y ssh.


Editar:

que adaptó los ajustes aquí:

Settings - TortoiseGit >> Network >> SSH-Client 
C:\Program Files\TortoiseGit\bin\TortoisePLink.exe 

que han generado la par de claves con:

C:\Program Files\TortoiseGit\bin\puttygen.exe 
+0

También verifique la opción "AutoLoad Putty Key" en ciertos cuadros de diálogo de Tortoise. – JarodMS

+0

¿Dónde lo cambiaste exactamente? – acme

+0

Si desea utilizar la clave OpenSSH, ¿cuáles son los cambios? Usas msysgit ssh y dónde pones la clave ssh? En Configuración-> Remoto, ¡solo dice la clave de masilla! –

1

crear la clave en bash git:

ssh-keygen -t rsa 

Deja todo en blanco y no se establece una contraseña. Tome el contenido de ~/.ssh/id_rsa.pub y péguelo en el espacio de clave pública provisto por github.

Ahora pruebe esto conectándose a github vía ssh. Si eso funciona, podrás usar git.

Espero que esto ayude.

+0

Crear una nueva clave puede resolver el problema temporalmente, pero dudo que vaya a resolver las cosas a largo plazo. Todo esto ha funcionado hasta hoy, donde aparentemente mi computadora está decidiendo usar la clave incorrecta para conectarse a github. – Martin

+0

La versión de My Git ni siquiera puede cargar las claves generadas de esta manera. Las claves que genero con masilla se cargan, las creadas con gitbash dan el error: "No se puede cargar el archivo de claves" cuando se trata de enviar a un repositorio. – atripes

10

Ja! ProcMon al rescate. Este es un error en tortoisegit/tortoiseplink. Debe dar preferencia a la clave establecida para ese control remoto a través del concurso, pero en su lugar da preferencia a la clave almacenada en el registro por masilla para ese servidor específico. Dos arreglos

2 posibles correcciones aquí

Su TortoisePlink se integra con masilla, y es la lectura de la clave privada que haya guardado en la masilla "sesión" asociada a dicho servidor. Al menos eso es lo que era para mí. Aunque no estoy en Github, no conozco la viabilidad de esta solución para todos.

Le recomiendo que elimine la clave establecida manualmente en la configuración de la sesión de masilla y use el menú para sus sesiones de masilla, ya que eso es lo que hace tortuga git. Esto también hace que tortoisegit use la clave establecida para el control remoto.

  1. Por lo tanto, se puede abrir la masilla, sea cual sea la carga sesión que ha asociado con el servidor, vaya a la conexión/SSH/Autorizar y modificar/eliminar el "archivo de clave privada para la autenticación" valor. MOdification puede arreglar este repositorio pero luego arruinar otro repositorio si está utilizando claves diferentes para el mismo servidor.

  2. Puede modificar/eliminar la entrada de registro usted mismo. es HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\$SERVERNAME$\PublicKeyFile

+1

tortoisegit error informe: http://code.google.com/p/tortoisegit/issues/detail?id=1347 – scaryman

+1

También está el 'Default% 20Settings' como una clave de sesión' $ SERVERNAME' que me había perdido que también contenía un PublicKeyFile – icc97

1

tuve la creación de mi TortoiseGit acceder a Bitbucket (Win10) el mismo problema. Para resolverlo, tuve que eliminar las claves del host guardadas en el registro al HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys (no la clave (Por defecto), tho).

Cuestiones relacionadas