Git Bash & Pageant não usar as chaves

Eu Tenho o Git para Windows (configurado para MinTTY e {[[2]}) e PuTTY instalado, e estou tentando fazê-lo funcionar com um repositório de BitBucket. Tenho a minha chave SSH carregada, no concurso e no site, e, no entanto, sempre que tento fazer alguma coisa que exija puxar / empurrar:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Quando eu executar o sugerido {[3] } ele usa {[4] } mas nenhuma das minhas outras chaves em ~/.ssh. Tentar usar ssh-add ~/.ssh/bitbucket_rsa resulta em:

Could not open a connection to your authentication agent.
Li sobre configurar o PuTTY para permitir o encaminhamento, mas é geralmente onde os conselhos acabam, então eu apenas definir esta opção para a sessão padrão e guardá-lo lá.

eu corri ps para verificar que aplicações estavam a correr, e ssh-agent não estava entre eles. A execução eval 'ssh-agent' inicia o servidor, mas não faz diferença.

Author: Dissident Rage, 2016-01-31

5 answers

Foi isto que acabou a trabalhar para mim. Já agora, também tenho bash nas janelas, mas acho que isso não importa.

Instalei o SourceTree e apontei para a sua pasta com plink.exe, puttygen.exe, & pageant.exe. Você também pode baixar e instalar estes separadamente.

Configurar A Variável De Ambiente Do Windows

  1. Tipo Environment na barra de pesquisa do Windows 10. Caso contrário, abra as propriedades do Sistema / Configuração avançada do sistema e encontre o seu ambiente Variavel.
  2. adicionar uma nova variável do sistema
    • nome da variável : GIT_SSH
    • valor variável : localização completa do ficheiro plink.exe (Poderá também ter pageant.exe e puttygen.exe na mesma pasta).
        O meu foi:
    • Nota : a nova 'SourceTree' (v2 no Windows) usa pastas versionadas, por isso, sempre que a actualizar, terá de actualizar isto, o que é uma dor. É melhor apenas fazer uma cópia de plink.exe e colocá-lo em algum lugar que não está indo alterar.
    • Se tiver algum dos programas acima em execução, poderá sempre abrir o Gestor de Tarefas, encontrar o processo e abrir a localização da pasta para obter o caminho para plink.exe.

Lucro

Certifique-se de reiniciar os seus terminais para que eles obtenham as variáveis de ambiente actualizadas. Para mim, eu estava executando bash para o meu terminal integrado dentro do VSCode, então eu tive que reiniciar VSCode. Seria, sem dúvida, aceitável encerrar o terminal e abrir um novo, mas eu também queria que a funcionalidade git construído em VSCode para funcionar também.

Nota

Dado que tenho o SourceTree instalado, consegui usar a sua interface para clonar a BitBucket e passar pela sua interface, mas tentar através dos terminais não estava a funcionar porque estavam a usar um conjunto de credenciais diferente.

Outra coisa interessante a assinalar é que se você navegar na configuração git do seu projecto localizado em: ./.git/config, podes trocar o teu comando de usar o ssh para https. Você pode obter os seguintes valores da sua visão geral no seu repositório de BitBucket.

Eu notei ao usar https no Windows 10 que, em seguida, vai usar o Gerenciador de credencial do Windows (eu tentei adicionar minhas credenciais para ele, enquanto tentava descobrir isso sozinho, mas eu ainda estava usando SSH para que não importasse) quando você vai interagir com o remoto repositório ele irá pedir-lhe as suas credenciais e armazená-las para posterior utilização no Gestor de credenciais do Windows:)

Espero que um destes métodos resulte para ti. O método HTTPS vai saltar toda a geração de chave SSH e empurrá-lo para cima em BitBucket, mas se sente mais seguro e portátil para mim.

Mac OS

Poderá ter de adicionar a sua chave ao chaveiro, especialmente se estiver a usar o VSCode e tiver uma frase-senha na sua chave (actualmente o VSCode não lhe permitirá escreva uma frase-senha).

ssh-add -K ~/.ssh/id_rsa

Https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#adding-your-ssh-key-to-the-ssh-agent

 56
Author: CTS_AE, 2018-08-07 21:32:24
Estás a misturar as coisas. O PuTTY e o concurso não são compatíveis com as ferramentas do openSSH e não conseguem comunicar juntos. PuTTY não consegue ler as chaves do seu agente do openssh e o openssh não consegue ler as chaves do Concurso. O formato chave também é diferente. Isso é mau neste mundo, mas não há solução no horizonte.

Também " reencaminhamento de agentes "é algo diferente de"usar agentes".

Se configurar o Git com plink (certifique-se de que o fez), verifique se o seu O concurso está em execução e se no seu perfil armazenado no PuTTY sob a ligação->SSH->Auth, a opção "tentativa de autenticação usando o concurso" está assinalada.

Se não resolver os seus problemas, publique algum registo de depuração do putty.

 4
Author: Jakuje, 2016-01-31 16:19:14

Para aceder às teclas ssh carregadas no Pegeant a partir do git bash, que vem com o Git-on-Windows, pode usar este programa. O processo de instalação é descrito na página ligada.

 1
Author: ivangretsky, 2016-11-24 09:43:46

Você não precisa de massa para trabalhar com BitBucket em ssh: o openssh (C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin\ssh.exe embalado em Git-for-windows funciona muito bem.

Certifique-se de que, na sua sessão da linha de comandos actual, tem a opção %USERPROFILE% (a PortableGit-2.7.0-64-bit\git-cmd.exe é suficiente para abrir um CMD normal devidamente configurado)

Criar em %USERPROFILE%\.ssh um ficheiro chamado config (como em Passo 3 do Doc Atlassiano):

Host bitbucket.org
 IdentityFile ~/.ssh/bitbucket_rsa

(também pode usar "/C/path/to/bitbucket_rsa")

Que permite usar um url ssh como bitbucket.org:user/repo.
Testá-lo com ssh -Tv bitbucket.org (Depois de adicionar a sua chave pública à sua conta BitBucket, é claro)

Nota: ssh-agent só é necessário se a sua chave privada estiver protegida pela frase-senha.

Actualize 2018, 2 anos depois: "Diga adeus à Putty à medida que a Microsoft adiciona um cliente OpenSSH ao Windows 10".
É realmente hora de deixar de lado o putty: não há necessidade de um formato de chave diferente (ppk) e solução proprietária , Agora que o openssh é oficialmente distribuído como uma funcionalidade do Windows (em beta por enquanto, Q1 2018).

 1
Author: VonC, 2018-02-21 09:35:00

O que funcionou comigo com o Git bash para o windows 7: convert .ficheiro pkk para o formato open-ssh:

Https://www.simplificado.guia / putty/convert-chave ppk-para-ssh

Adicionar a chave gerada para IdentityFile .SSH / config at git bash e. g.:

Host repo
     # my converted open-ssh key
     IdentityFile /c/Users/me/open-ssh.pri
     # this repo-server uses specific name, not usually needed
     User git
     # this repo-server uses specific port, not usually needed
     Port 8322
     # repo server full name
     Hostname repo.server.com
 0
Author: apmattil, 2018-09-30 12:30:36