Eu uso o github e adicionei e sincronizei arquivos com sucesso no meu laptop no passado.
Recentemente, comecei a receber " Erro fatal PuTTY: desconectado: nenhum método de autenticação compatível disponível " após a execução:
git pull origin master (ou push)
Contudo
ssh [email protected] retorna a resposta correta: ERROR: Hi username! Você foi autenticado com sucesso, mas o GitHub não fornece acesso ao shell. Conexão com github.com fechada.
depois de vasculhar o github, encontrei este morcel:
Nenhum método de autenticação suportado disponível. Você deve estar ciente da variável de ambiente GIT_SSH, que é usada pelo git para encontrar seu cliente de idioma ssh, se o ssh não funcionar para você. A instalação do git pode estar usando plink.exe (via GIT_SSH) para realizar a autenticação. Em caso afirmativo, certifique-se de ter o pageant.exe em execução e a chave que você criou para o github carregada nele. Isso fornece a chave para plink.exe; sem ele, o erro acima ocorrerá.
não tenho certeza do que é plink.exe ou peagant.exe .. e o fato de ssh [email protected] parecer autenticar corretamente me faz pensar qual é a melhor solução aqui .. eu certamente não quero complicar minha configuração se não necessário.
GIT_SSH
fazer.bash_profile
e não.profile
GIT_SSH="D:\Program Files\Git\usr\bin\ssh.exe"
Usando TortoiseGit
TortoiseGit> Configurações ... Rede ... Cliente SSH:
C:\Program Files\Git\usr\bin\ssh.exe
A localização pode variar. Em um computador estava em
C:\Program Files (x86)\Git\bin\ssh.exe
fonte
Já que você perguntou: plink & pageant fazem parte do pacote PuTTY, que é uma implementação de SSH que oferece suporte a Linux e Windows e é completamente dominante no Windows.
SSH
se você já usou o Telnet, é assim (mas mais seguro): ele permite que você acesse remotamente o shell bash (linha de comando) de um host Linux.
PuTTY
No Windows, é o software dominante para acessar remotamente a linha de comando de um host Linux sob o protocolo SSH (acima). No Windows, as extensões .exe são para executáveis. Portanto, essas notas sobre plink.exe e pageant.exe provavelmente não se aplicam se você estiver no Linux . PuTTY inclui
De ( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )
Portanto, o github está hospedado em uma máquina Linux e usa SSH para proteger a conexão. SSH ou autentica com senhas ou chaves, muitos hosts (github?) Autenticam apenas com chaves. Sua configuração está aparentemente tentando autenticar com uma chave. Chaves e hosts não são um por um: você pode ter duas chaves para o mesmo host e / ou dois hosts para a mesma chave, portanto, eles precisam ser gerenciados. Se você estiver no Windows, sua sessão SSH provavelmente será acessada através do plink e suas chaves provavelmente serão gerenciadas pelo Pageant.
Importe a chave necessária sempre que carregar o Pageant. Se você seguiu os guias que dizem "importe sua chave" e viu que funcionou, mas não funciona agora, consulte o Capítulo 9: Usando o Pageant para autenticação .
Uma última dica se você estiver no Windows: você pode ter várias instâncias do pacote PuTTY instaladas por várias ferramentas. O TortoiseGit, por exemplo, instala o seu próprio.
fonte
Eu experimentei esse problema porque meu
GIT_SSH
apontava para a versão do TortoiseSVN doPlink.exe
. Eu mudei para apontar para a versão do TortoiseGit, reiniciei o cmd e funcionou.Não me lembro exatamente, mas a versão do TortoiseSVN pode ter sido a versão de 32 bits, e a versão do TortoiseGit era de 64 bits (localizado em
Program Files
, nãoProgram Files (x86)
).Verifique
GIT_SSH
novamente seu env var.Eu prefiro usar o git com o normal
cmd.exe
(no Console2, é claro)fonte
Para usuários do TortoiseGit no Windows
Originalmente, eu costumava configurar a maioria dos meus repositórios Github / Bitbucket usando os URLs do repositório SSH, pois (originalmente) costumava ser a única maneira conveniente de evitar que o TortoiseGit solicitasse sua senha em cada ação.
Mas configurar TortoiseGit dessa maneira sempre foi dolorosamente doloroso. Sempre levava horas para configurar corretamente, pois as opções de instalação padrão nunca pareciam funcionar (mesmo em 2016, caramba!).
Mas TortoiseGit agora tem melhor gerenciamento de senha para HTTPS, e o Github realmente recomenda usar URLs HTTPS sempre que possível.
Os benefícios do HTTPS são:
pageant.exe
execução constante (o que solicita sua senha em cada lançamento)fonte
Se você estiver usando o Pageant e estiver obtendo o erro descrito na pergunta após reiniciar o PC (ou fechar e reabrir o Pageant):
O erro pode ser causado pelo fato de o Pageant não ter a chave SSH do GitHub carregada ativamente. Por padrão, o Pageant NÃO carrega automaticamente as chaves da sessão anterior quando é iniciado.
Para carregar a chave:
Para evitar esse problema no futuro, você pode configurar o Pageant para carregar automaticamente sua chave ao iniciar. (O Pageant solicitará automaticamente uma senha se sua chave estiver protegida por senha.)
Etapas para fazer isso (supondo que você já tenha o Pageant configurado para ser executado quando o Windows iniciar):
shell:startup
)Referência e detalhes completos: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
fonte
Meu problema era que eu estava tentando usar meu nome de usuário do github. Aparentemente, ao usar o Github (ou é uma coisa do Git?) , Se você usar a autenticação baseada em chave, será necessário definir seu nome de usuário como
git
.Não tenho certeza de por que você precisa de um nome de usuário - talvez alguém com mais conhecimento possa explicar isso.
fonte
ssh://[email protected]/myname/repo.git
funcionará muito bem. Bom trabalho. Quanto ao motivo, presumo que seja para bloquear a segurança. O usuário 'git' tem seu login desabilitado, então ninguém pode invadir o sistema dessa forma. Eles precisam ter uma chave válida até mesmo para falar com o Github e, uma vez que tenham uma chave válida, eles podemNa minha máquina com Windows 7 executando o Github para Windows usando git versão 1.8.3.msysgit.0. Descobri que atualizar minha variável de ambiente do sistema GIT_SSH para C: \ Arquivos de programas (x86) \ Git \ bin \ ssh.exe parecia funcionar. Isso também corrigiu meu problema de contato com o repositório git do OpenShift.
fonte
Funcionou para mim no Windows 8: a variável GIT_SSH estava apontando para plink.exe, mudou nas configurações do sistema para apontar para o binário ssh, e isso corrigiu o problema. Para descobrir o caminho completo para o ssh, execute:
fonte
Para resolver esse problema, foi o que fiz.
Eu estava usando Git Bash no Windows 10
Comecei o Pageant, pressionei a tecla Adicionar,
naveguei até a pasta C: \ Usuários \ nome_de_usuário \ .ssh e escolhi minha chave
Em seguida, tentei fazer um push git e funcionou desta vez.
fonte
Mesmo erro, solução diferente observada aqui - problema ao conectar-se ao GitHub no Windows, mesmo via PuTTY
fonte
Eu encontrei o mesmo problema, porém a solução GIT_SSH pareceu funcionar uma vez para mim. Depois de reiniciar o computador, percebi que era outra coisa, pois consegui clonar meus repositórios privados sem nenhum problema usando Git Bash ou Prompt de comando, mas não no Sublime Text 3 com o plugin SublimeGit. Minha solução era simples e é realmente o que @BlueRaja - Danny Pflughoeft mencionou, mas achei que poderia usar alguma direção;)
Basicamente, você só precisa editar
~/.ssh/config
e garantir que o nome de usuário sejagit
. Você também pode dizer a ele para usar uma chave SSH específica para o Github - Meu~/.ssh/config
arquivo se parece com o seguinte:Eu tenho uma chave específica para o Github devido à quantidade de outras coisas que faço ao longo do meu dia, mas se você tiver apenas uma, geralmente será
~/.ssh/id_rsa.pub
como o Github explica aqui .Sei que todo mundo tem uma solução diferente, mas deixarei isso aqui para qualquer pessoa que possa encontrar este artigo sem uma correção. Boa sorte!
fonte
Recebi este erro ao usar o TortoiseGit para clonar um repositório do GitHub. Corrigido clicando em "Load Putty Key" e selecionando um arquivo de chave (* .pkk) na caixa de diálogo de clone Git.
fonte
Você pode obter o plink & pageant aqui: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Eles são ferramentas PuTTY.
fonte
Eu tenho esse problema (ssh direto funcionou, mas git pull falhou) devido ao meu remoto git não ser o que eu pensava.
Sim, sim, sei que é um erro estúpido, mas acontece e vale a pena verificar.
Usar
git remote -v
fonte
Tive um problema semelhante depois de atualizar GitExtensions para a versão 3.3.0.7719
De alguma forma, ele reverteu minhas configurações de autenticação para usar PuTTY em vez de OpenSSH.
Nessa versão, aqui está o menu que usei para habilitar o OpenSSH novamente:
fonte