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.
5 answers
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
- 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. - 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 terpageant.exe
eputtygen.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.
- SHH layout:
[email protected]:USERNAME/REPO_NAME.git
- disposição dos https:
https://[email protected]/USERNAME/REPO_NAME.git
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
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.
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.
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).
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