TortoiseGit com a chave openssh não autenticando usando o ssh-agent

estou a criar um ambiente git no Windows XP (msysGit 1.7.11, TortoiseGit 1.7.14) e a tentar alcançar os seguintes pontos:

  • ligação ssh num porto diferente do predefinido 22
  • a autenticação SSH feita pelo agente SSH
Então eu crio um ... ficheiro ssh / config :

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

ao usar o Git bash CLI, tudo funciona como planeado.

Estou a lutar com o TortoiseGit.
Instalei pela primeira vez o TortoiseGit com o Plink e usar o Concurso para carregar a chave privada do ssh. A autenticação automática (Pageant) funcionou, mas a configuração foi uma falha porque o TortoiseGit não reconhece o url do Git repos formatado como gitolite@gitbox/repo.git .

decidi então instalar o TortoiseGit usando o cliente openssh, para que o ficheiro possa ser lido pelo cliente ssh, e para imitar a configuração do Git CLI.
Eu escolhi o ssh.o exe foi enviado com o msys git como cliente ssh na configuração do TortoiseGit.
Ao fazer um git pull, o url remoto está agora resolvido, mas a senha da frase-senha é pedida, enquanto espero que a autenticação automática do ssh-agent ocorra.

https://dl.dropbox.com/u/1026715/tortoisegit.png

É possível fazer o TortoiseGit trabalhar com o agente ssh?
Ou tornar TortoiseGit (Plink) ciente de .ssh / config ?

Editar #1

seguindo o Conselho do @VonC configurei a minha variável $HOME.
Quando eu clicar em mostrar as variáveis de ambiente em TortoiseGit agora tenho:

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

Mas git pull ainda necessita que indique a frase-senha.

Author: kraymer, 2012-11-22

6 answers

Não são necessários ajustes.

Basta fazer o TortoiseGit apontar para o mesmo cliente ssh usado pelo próprio git, veja a imagem:

enter image description here

{[2] este deve ser C:\Program Files\Git\usr\bin\ssh.exe na última versão do Git, tal como mencionado por Aleksey Kontsevich nos comentários.
 63
Author: Haitham Sweilem, 2016-04-20 21:25:55

Instalei pela primeira vez o TortoiseGit com Plink e usei o Concurso para carregar a chave privada do ssh. A autenticação automática (Pageant) funcionou, mas a configuração foi uma falha porque o TortoiseGit não reconhece o url do Git repos formatado como gitolite@gitbox/repo.pira-te.

Finalmente encontrei uma solução que consiste em criar uma sessão de massa com o mesmo nome que a alcunha ssh (ie gitbox na pergunta).
Desta forma, posso clonar como git clone gitbox/monrepo no CLI e a sintaxe origin está correcta tratado por TortoiseGit.

 4
Author: kraymer, 2013-01-09 16:51:38

1) Cygwin

Utilizar o método descrito no seguinte artigo:: https://help.github.com/articles/working-with-ssh-key-passphrases

A senha só será pedida uma vez no arranque da sessão do cygwin. !!! Antes de sair da sessão do cygwin, não se esqueça de matar o processo do agente ssh (use o ps para encontrar o PID do processo e o kill-9).

Estamos a usar uma abordagem separada para o cygwin, porque por alguma razão o cygwin não vê processos iniciados externamente nas janelas. ambiente.

2, 3) MsysGit, TortoiseGit

Ligação útil: http://dogbiscuit.org/mdub/weblog/Tech/WindowsSshAgent

Instale O MsysGit. Instalar o TortoiseGit (verifique o openssh em vez do plink durante a instalação). !!! Verifica as variáveis dos sistemas. Se existir uma variável GIT_SSH presente-remova-a.

Go to TortoiseGit - >Settings- > General

Definir a localização do Git exe em /bin Mudar a localização externa da dll para /mingw / bin

Ir para TortoiseGit - >Configuração - >Rede Definir o SSH Propriedade do cliente para /bin / ssh.exe

Defina a variável do sistema SSH_ AUTH_LOCKS=C:\temp.SSH-socket

Iniciar cmd.exe e execute os seguintes comandos(uma vez que instalámos o MsysGit, todos os seguintes comandos estão acessíveis no cmd - / bin é adicionado à variável de localização do 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
É isso. A partir desse momento você pode executar git push, git pull do TortoiseGit e MsysGit sem pedir a frase-senha.

Quando o agente ssh já não é necessário, pode matá-lo através da tarefa do windows. Manager.

 4
Author: ydrozhdzhal, 2013-02-16 17:48:09
Nenhuma das respostas acima resultou comigo.

Criei este ficheiro em lote para resolver o 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%"

Execute isto uma vez, e indique a sua frase-senha.

Depois pode usar o tortoisegit com o openssh sem ter de introduzir a sua frase-senha para cada operação.

 3
Author: Michael Marcin, 2016-07-07 23:15:00

Certifique-se de lançar o seu TortoiseGit num ambiente onde HOME está definido, e faça referência à pasta-mãe de .ssh.
Isto é importante, uma vez que, no Windows, O HOME não é definido por padrão.

Veja como um exemplo: " Auth falha no Windows XP com git e tortoisegit ".
(Outras fontes possíveis: " Como dizer ao Git para o Windows onde encontrar a minha chave privada RSA?")

 2
Author: VonC, 2017-05-23 11:54:50
Parece haver uma grande variedade de opções para resolver isto. Como nenhum dos anteriores trabalhou para mim, pensei em partilhar o que me ajudou.

Imagem: configuração da rede / cliente de SSH do Git

Em Settings... -> Network -> SSH -> SSH client, defina o cliente para C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe. Usando o Pageant, você é então autenticado automaticamente como esperado, caso contrário você é solicitado para a sua senha de chave privada. Certifique-se que a opção" Autoload Putty Key " está assinalada na janela de envio.

 0
Author: Lupinity Labs, 2016-11-19 01:39:33