El problema: cuando intento usar una clave ssh2-RSA generada por puttygen con la herramienta de línea de comando git, la clave es rechazada.

Detalles: Tengo TortoiseGit instalado en mi computadora (así como msysgit). TortoiseGit está configurado para usar PuttyGen para generar sus claves. Cuando trato de usar una de las claves generadas por PuttyGen en la herramienta de línea de comando git, niega la clave pública y en algunos casos me pedirá una contraseña aunque la clave no tenga ninguna. He tenido este problema en varias computadoras (todas con Windows 7 x64) ¿Alguna idea de cómo solucionar esto para no tener que tener claves separadas para mi cliente de línea cmd y TortoiseGit?

También puede ser de interés que TortoiseGit esté configurado para cargar automáticamente una clave de masilla para cada repositorio desde el cuadro de diálogo de inserción. Cuando ejecuto ssh -v git@github.com, encuentra la clave correctamente, pero cuando intenta conectarse, se rechaza diciendo que la clave es incorrecta. Si utilizo una clave hecha por ssh-keygen, funciona bien.

Versiones de software: MsysGit 1.7.7.1 SSH 4.6p1 PuttyGen 0.61 Tortise 1.7.5.0

Gracias por su ayuda (y si este es el intercambio incorrecto para poner esto, por favor dígame para que pueda cerrarlo y moverlo rápidamente) Eric Fode

1
Eric Fode 9 may. 2012 a las 14:34
 – 
Eric Fode
10 may. 2012 a las 08:33

1 respuesta

La mejor respuesta

Duplicado de este . En resumen: PuTTY (del cual puttygen es parte) y OpenSSH (del cual ssh-keygen es parte) usan un formato diferente para almacenar sus claves, y tienes que ceñirte a uno de ellos o realizar conversiones.

Personalmente, configuré Git para usar plink.exe como su agente SSH y alimentarlo con claves a través del programa pageant que es el ssh-agent de PuTTY.

Para que quede más claro, tal vez: Git para Windows incluye OpenSSH, pero no está vinculado a él y puede usar PuTTY con gusto si se le pide que lo haga. Todos pueden elegir su elección aquí. Creo que si PuTTY está instalado en el sistema o usado por alguna otra herramienta (se parece a su caso), hacer que Git use PuTTY es una opción natural.

3
Community 23 may. 2017 a las 14:53
1
Sin embargo, una advertencia (seria) al usar PuTTY con Git para Windows: cuando se conecta a un host aún no visto por primera vez, querrá pedirle al usuario que acepte la huella digital de la clave de ese host; consulte el código este problema. La solución es conectarse primero a ese host usando PuTTY manualmente (ya sea a través de su cliente GUI o ejecutando plink.exe.
 – 
kostix
10 may. 2012 a las 11:17
La pregunta que esto duplica no parece explicar cómo configurar Git para usar plink.exe como su agente SSH. ¿Tiene alguna sugerencia, por favor? :)
 – 
Owen Blacker
4 jun. 2013 a las 20:26
1
@OwenBlacker, claro. Sigue esta guía. Además, no mezcle los términos: plink.exe es un cliente de SSH , que podría (o no, pero lo hace de manera predeterminada) comunicarse con un agente de SSH en ejecución. / i> que es implementado por un programa llamado pageant.exe en la suite PuTTY.
 – 
kostix
6 jun. 2013 a las 19:38
1
@OwenBlacker, la idea general de un agente SSH es almacenar en caché las claves SSH descifradas primero pidiéndole una contraseña para descifrar cada clave que le arroje al agente. Luego, un cliente SSH intenta comunicarse con el agente y pedirle las claves que tiene para intentar autenticarse con ellas en el servidor. De esta manera, solo escribe la frase de contraseña para cada una de sus claves SSH una vez por sesión de inicio de sesión (o, mejor dicho, una vez por tiempo de ejecución del agente).
 – 
kostix
6 jun. 2013 a las 19:40
2
@OwenBlacker, una nota menor re. la guía a la que me referí. El instalador de Git para Windows solo le muestra la página para elegir el cliente SSH preferido si encuentra en el registro sesiones SSH guardadas allí por PuTTY. Entonces, si no tiene ninguno, no tendrá la oportunidad de elegir plink.exe en el instalador. Si este es el caso, simplemente agregue una variable de entorno GIT_SSH y configúrela con el nombre de ruta completo del binario plink.exe.
 – 
kostix
6 jun. 2013 a las 19:44