puttygen ssh ssh-keys openssh tortoisegit ssh-agent

puttygen - TortoiseGit con la clave openssh no se autentica utilizando ssh-agent



configure tortoisegit (6)

Primero instalé TortoiseGit con Plink y usé Pageant para cargar la clave privada ssh. La autenticación automática (Pageant) funcionó pero la configuración fue un error ya que TortoiseGit no reconoce git repos url formateado como gitolite@gitbox/repo.git.

Finalmente encontré una solución que consistía en crear una sesión PuTTY con el mismo nombre que el alias ssh (es decir, gitbox en la pregunta).
De esta manera puedo clonar como git clone gitbox/monrepo en la CLI y la sintaxis de origin se maneja correctamente por TortoiseGit.

Estoy configurando un entorno git en Windows XP (msysGit 1.7.11, TortoiseGit 1.7.14) y tratando de lograr los siguientes puntos:

  • Conexión ssh en un puerto diferente al predeterminado 22
  • autenticación ssh manejada por ssh-agent

Así que creo un archivo ~ / .ssh / config :

Host gitbox User gitolite Hostname XX.XX.XX.XX Port 154 PreferredAuthentications publickey IdentityFile "/c/Documents and Settings/kraymer/.ssh/id_rsa"

Cuando se utiliza la CLI de git bash, todo funciona según lo previsto.

Estoy luchando con TortoiseGit.
Primero instalé TortoiseGit con Plink y usé Pageant para cargar la clave privada ssh. La autenticación automática (Pageant) funcionó pero la configuración fue un error ya que TortoiseGit no reconoce git repos url formateado como gitolite@gitbox/repo.git .

Entonces decidí instalar TortoiseGit usando el cliente openssh, de modo que el cliente ssh pueda leer el archivo de configuración e imitar la configuración de la CLI de git.
Escogí el ssh.exe enviado con msys git como cliente ssh en la configuración de TortoiseGit.
Cuando se hace un git pull , la URL remota ahora está resuelta, pero se solicita la contraseña de contraseña mientras espero que se produzca la autenticación automática ssh-agent.

¿Es posible hacer que TortoiseGit funcione con ssh-agent?
¿O informar a TortoiseGit (Plink) de .ssh / config ?

Editar # 1

Siguiendo el consejo de @VonC configuré mi variable $ HOME.
Cuando hago clic en Mostrar variables de entorno en TortoiseGit, ahora tengo:

HOME=C:/Documents and Settings/kraymer HOMEDRIVE=C: HOMEPATH=/Documents and Settings/kraymer

Pero git pull todavía requiere que ingrese la frase de contraseña.


1) Cygwin

Utilice el enfoque descrito en el siguiente artículo: https://help.github.com/articles/working-with-ssh-key-passphrases

La contraseña se solicitará solo una vez en el inicio de sesión de cygwin. !!! Antes de salir de la sesión de cygwin, no se olvide de eliminar el proceso ssh-agent (use ps para encontrar el PID del proceso y elimine -9).

Estamos usando un enfoque separado para cygwin, porque por alguna razón, cygwin no ve procesos iniciados externamente en el entorno de Windows.

2, 3) MsysGit, TortoiseGit

Enlace útil: http://dogbiscuit.org/mdub/weblog/Tech/WindowsSshAgent

Instalar MsysGit. Instale TortoiseGit (verifique openssh en lugar de plink durante la instalación). !!! Compruebe las variables de los sistemas. Si hay una variable GIT_SSH presente, elimínela.

Ir a TortoiseGit-> Configuración-> General

Establezca la ruta Git exe en / bin Establezca la ruta dll externa en / mingw / bin

Vaya a TortoiseGit-> Configuración-> Red Establezca la propiedad del cliente SSH en /bin/ssh.exe

Defina la variable del sistema SSH_AUTH_SOCKS = C: / temp.ssh-socket

Inicie cmd.exe y ejecute los siguientes comandos (desde que instalamos MsysGit, se puede acceder a todos los siguientes comandos en cmd - / bin se agrega a la variable PATH del sistema):

# following command is required to execute for avoiding Address already bind message when ssh-agen is not started yet but .ssh-socket exists after previous agent session rm "%SSH_AUTH_SOCK%" # Starting ssh-agent ssh-agent -a "%SSH_AUTH_SOCK%" # Adding our openssh key ssh-add "%USERPROFILE%/.ssh/id_rsa" # Type password for your key

Eso es. Desde ese momento, puede ejecutar git push, git pull desde TortoiseGit y MsysGit sin pedir una frase de contraseña.

Cuando ssh-agent ya no es necesario, puede eliminarlo a través del administrador de tareas de Windows.



Ninguna de las respuestas anteriores funcionó para mí.

He creado este archivo por lotes para resolver el problema.

CALL "C:/Program Files/Git/cmd/start-ssh-agent.cmd" SETX SSH_AUTH_SOCK "%SSH_AUTH_SOCK%" SETX SSH_AGENT_PID "%SSH_AGENT_PID%"

Ejecuta esto una vez, e ingresa tu contraseña.

Luego puede usar tortoisegit con openssh sin tener que ingresar su contraseña para cada operación.


No se necesitan ajustes.

Simplemente haga que TortoiseGit apunte al mismo cliente ssh utilizado por git en sí mismo, vea la captura de pantalla:

Esto debería ser C:/Program Files/Git/usr/bin/ssh.exe en la última versión de Git como lo mencionó Aleksey Kontsevich en los comentarios.


Parece que hay una gran variedad de opciones para resolver esto. Como ninguno de los anteriores ha funcionado para mí, pensé que compartiría lo que me ayudó.

Captura de pantalla: Configuración de red / Cliente Git SSH

En Settings... -> Network -> SSH -> SSH client , configure el cliente en C:/Program Files/TortoiseGit/bin/TortoiseGitPlink.exe . Al usar Pageant, se autentica automáticamente como se espera, de lo contrario, se le solicitará su contraseña de clave privada. Asegúrese de que la opción "Autoload Putty Key" esté marcada en el diálogo de inserción.