Erro “Falha na autenticação” com EGit e GitHub


98

Eu instalei o plugin EGit no Eclipse Helios e estou tentando usá-lo com minha conta GitHub, mas quando tento configurá-lo, recebo um erro "Falha na autenticação".

Eu estive pesquisando, mas sem sorte ... parece ser um problema com minha senha, mas AFAIK EGit está procurando no lugar certo ( /home/user/.ssh/id_rsa) e não tenho problemas para conectar por sshou gitcliente de console.

Alguns blogs dizem que é um problema com o URI e o analisador do Egit, mas ainda não encontrei uma solução.


Respostas:


140

Minha resposta pode estar desatualizada, mas espero que possa ser útil para alguém.

  1. Em seu Eclipse, vá para Janela> Preferências> Geral> Conexões de rede> SSH2 (ou apenas digite "SSH2" na caixa de filtro da janela de preferências).

  2. Na guia "Gerenciamento de chaves", pressione o botão "Gerar chave RSA ..." . Opcionalmente, você pode adicionar comentário (geralmente endereço de e-mail) e senha para sua chave. A senha longa será usada durante a autenticação no GitHub.

  3. Copie sua chave pública gerada (em uma caixa logo abaixo do botão "Gerar chave RSA ...") e adicione-a à sua conta GitHub.
  4. Pressione o botão "Salvar chave privada ..." para salvar sua chave RSA privada em um arquivo. Por padrão, as chaves são armazenadas no diretório inicial SSH2 (consulte a guia "Geral").

É isso aí! Agora você deve ser capaz de enviar seu código ao repositório GitHub.


1
Minha chave privada não tinha o nome padrão (id_rsa), então não estava sendo reconhecida como tal. Eu adicionei manualmente, nas janelas de preferências apontadas por você, e funcionou bem.
muriloq

18
Percebi que depois de configurar a chave SSH conforme você descreve, não devo alterar o nome de usuário / senha na caixa de autenticação (estava colocando minhas credenciais do GitHub). O padrão nesta caixa é nome de usuário: git e a senha está em branco.
harschware

1
Isso funcionou para mim com um repositório git BitBucket, mas tive que reiniciar o Eclipse.
artlung

8
deixar o nome de usuário como git e a senha em branco finalmente funcionou para mim.
Mike R

4
Aqui está o processo para adicionar a chave RSA gerada à sua conta github 1) faça login em sua conta github 2) goto settings 3) no lado esquerdo você encontrará as chaves SSH, clique nela 4) e clique em adicionar chaves SSH (agora cole a chave SSH que você gerou)
rajeev

27

Eu tive exatamente o mesmo problema, mas encontrei a cura de um relatório de bug do Eclipse!

Uma variável de ambiente chamada GIT_SSH deve ser definida com um caminho para um executável ssh [1].

Por exemplo, no Ubuntu Linux (10,10 64 bits):

> export GIT_SSH=/usr/bin/ssh
> eclipse

Depois disso, o envio para o repositório GitHub funciona como deveria. Eu testei isso com Eclipse Galileo e Indigo.

O problema é realmente chato e a solução está longe de ser boa. Por enquanto, para tornar a solução permanente, pelo menos para usuários do Ubuntu, deve-se tornar a variável env permanente. Isso pode ser feito adicionando o comando de exportação a ~ / .profile ou ~ / .bashrc [2]. Por exemplo:

> cd ~
> echo "export GIT_SSH=/usr/bin/ssh" >> .profile

Em seguida, reinicie o Eclipse para que tenha efeito.

Fontes:


Estive com esse problema a semana toda - Eclipse sob osx conectando ao GitHub ou Asssembla. Sua correção funciona para mim. Obrigado.
ianmayo,

No Windows, o openssh não funcionou para mim. Eu tive que usar o plink. Veja minha resposta.
Piotr Dobrogost de

E está se aproximando de uma correção lançada. No final do relatório de bug, alguém mostrou como baixar manualmente o arquivo jar jsch mais recente e instalá-lo manualmente para que funcione dessa forma. Vou apenas seguir com esta solução env var e esperar que o arquivo jar jsch entre na versão do eclipse.
crowmagnumb de

Resolveu meu problema. Obrigado.
Pedram

AMD. Problemas como esse me fazem pensar por que o Android usou o Eclipse em primeiro lugar. Muito obrigado pela sua dica. Isso resolveu meu problema, e EGit / Eclipse foi totalmente inútil com "Auth Fail"
Calyth de

16

Resolvi o problema selecionando httpcomo protocolo e fornecendo meu nome de usuário e senha do GitHub.


sim! Ao contrário de tudo o que li, mas funcionou. (Eclipse Indigo)
Owen B

http ou https são muito mais simples do que ssh
Junchen Liu

Sim, mas há casos em que você precisa usar o ssh. Como a necessidade de autenticação de dois fatores no BitBucket ao trabalhar com repositórios. Você só pode trabalhar com ssh quando precisa de autenticação de dois fatores.
Akshay Mahajan

10

Depois de passar horas procurando a solução para este problema, finalmente encontrei ouro ao fazer as alterações mencionadas em um Fórum Eclipse .

Passos:

Pré-requisitos: mysysgit é instalado com a configuração padrão.

1.Crie o arquivo C: /Users/Username/.ssh/config (substitua "Username" pelo seu nome de usuário do Windows 7. (Por exemplo, C: /Users/John/.ssh/config)) e coloque-o nele:

Host github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

2. Experimente configurar o repositório remoto agora no Eclipse.

Felicidades. Deve funcionar perfeitamente.


8

Você precisa instalar o msysgit, depois de instalar você precisa abrir o Git Bash e inserir estes comandos:

$ git config --global user.name "Gennadiy Zlobin" (your name)
$ git config --global user.email gennad.zlobin@gmail.com (your email)
$ ssh-keygen -C "gennad.zlobin@gmail.com" -t rsa (your email)

Agora suas chaves geradas estão em C:\Users\username\.ssh(no Windows 7).
Em seguida, você carrega o conteúdo de sua chave pública para seu projeto no Github
In Eclipse aberto Window->Preferences->General->Network->SSH2e define seu ~/.sshcomo SSH Home

Depois disso, vá para Key Management tabe Carregar chave existente - defina aqui sua chave privada em ~/.ssh.

Depois disso, você pode enviar seu projeto para o Github (mas eu defini o protocolo ssh, não git + ssh).


Muito obrigado, mas na verdade estou executando-o no Arch Linux
tehsis

5

Resolvi o mesmo problema ao adicionar minha chave ao ssh;

ssh-add ~/.ssh/id_rsa 

em seguida, digite a senha e precisa reiniciar.


4

Para usuários * nix que usam SSH:

Certifique-se de que o nome de usuário da sua conta em sua máquina local não seja diferente do nome de usuário da conta no servidor. Aparentemente, o eGit não parece ser capaz de lidar com isso. Por exemplo, se seu nome de usuário em sua máquina local for 'john', e a conta que você está usando no servidor se chamar 'git', por exemplo, ele simplesmente não consegue se conectar (para mim, de qualquer maneira). A única solução que encontrei é garantir que você tenha nomes de usuário idênticos na máquina local e no servidor.


1
Alguma ideia de que ainda é esse o caso? Tenho batido minha cabeça na parede esta noite. Minha chave privada é protegida por uma senha, que o Eclipse / eGit nunca pede. Quando tento enviar para o remoto, o Eclipse apenas emite um erro "org.eclipse.jgit.transport.CredentialItem $ StringType Passphrase para .ssh id_rsa"
Vilsepi


2

Meus quatro pennneth: minhas chaves SSH foram configuradas no Cygwin, em C: \ cygwin \ home \ <user> .ssh, então apontei SSH para esta pasta em vez do padrão (Win7) C: \ Users \ <user> \ ssh , de acordo com estas instruções: http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

e usei o protocolo ssh, e funciona bem. Tentar usar o protocolo git ainda dá "Usuário não suportado no protocolo git", no entanto.


2

Para você que, como eu, já configurou suas ssh-keys mas ainda recebe os erros:

Certifique-se de configurar um controle remoto push . Funcionou para mim quando recebi as duas referências do repositório remoto ("... Passphrase for ..." e "Auth fail" na caixa de diálogo "Push ...").

Desde que você já:

  1. Configure suas chaves SSH com Github (Janela> Preferências> Geral> Conexões de rede> SSH2)

  2. Configure seu repositório local (você pode seguir este guia para isso)

  3. Criado um repositório Github ( mesmo guia )

... aqui está como você faz:

  • Vá para a visualização Repositórios Git (Janela> Mostrar Visualização> Outro> Repositórios Git)
  • Expanda seu Repositório e clique com o botão direito em Remotos -> "Criar Remoto"
  • "Nome remoto": origem, "Configurar push": marcado -> clique em "OK"
  • Clique no botão "Alterar ..."
  • Cole seu URI do git e selecione o protocolo ssh -> clique em "Concluir"
  • Agora, clique em "Salvar e enviar " e AGORA você deve obter um prompt de senha -> digite a senha da chave pública aqui (desde que você FEZ (e deve) configurar uma senha para a sua chave pública -> clique em "OK"
  • Agora você deve obter uma janela de confirmação dizendo " Enviado para SeuRepositório - origem" -> clique em "OK"
  • Envie para upstream , mas desta vez use "Repositório remoto configurado" como seu repositório Git de destino
  • Vá buscar uma xícara de café bem merecida!


1

Você já tentou usar o protocolo ssh em vez do git + ssh? Eu tenho o mesmo problema e isso resolveu, embora a documentação oficial diga para usar git + ssh


1

No Windows, a configuração GIT_SSHpara openssh que vem com msys git não funcionou (Eclipse travou durante a confirmação). Configurá-lo como TortoisePlink resolveu o problema (acho que o plink original também funcionaria). O bônus adicionado agora é que o Eclipse usa as chaves armazenadas no concurso.


1

Resolvi isso selecionando https como protocolo e adicionando meu nome de usuário e senha do github


1

Em sua visualização GIT onde você tem seus repositórios, você verá uma estrutura como:

  • ramos
  • Tag
  • referências
  • Remotos
  • etc ...

Clique em controles remotos, clique com o botão direito do mouse no url do repositório e selecione 'Alterar credenciais'.



0

Eu estava tendo o mesmo problema que parecia ser um problema de configuração. O aplicativo github mac osx criou uma chave privada ssh chamada github_rsa

Em seu Eclipse vá para Window > Preferences > Network Connections > SSH2

Na guia geral, você deve ver a página inicial do SSH2 /Users/<you username>/.ssh provavelmente verá id_dsa, id_rsa definidas como chaves privadas.

Clique em 'Adicionar chave privada' e selecione github_rsa localizado /Users/<you username>/.ssh


0

SE VOCÊ TIVER ARQUIVO PEM : No Eclipse, vá para Janela> Preferências> Conexões de rede> SSH2 e, em seguida, adicione o caminho para seu arquivo PEM em "Chaves privadas" e isso deve resolver o problema.


0

Eu também queria tornar público uma correção de código do Google e recebi o mesmo erro. Começou com isto vídeo, mas ocorreu um erro em Salvar e publicar. Eu vi que há várias perguntas a respeito disso. Alguns são usuários do Windows, esses são os mais sortudos, porque geralmente não há problemas com as permissões e alguns são usuários do Linux.

Tenho um mac para uso em desenvolvimento mobile e muitas vezes encontro esse problema. A fonte para esses problemas são as soluções "independentes de plataforma", que não ligam o suficiente para o mac e não têm acesso ao keychain, onde estão armazenados os certificados, arquivos .pem e assim por diante.

Tudo o que eu queria é não fazer nenhuma configuração de ambiente, nem linha de comando, apenas cliques simples baseados em GUI, como um usuário normal.

Metade da parte foi feita com o plugin Eclipse Git, a segunda parte (push to Github) foi feita com Mac Github

Legal e fácil :)

Tudo pode ser feito com aquele appp nativo se eu começar a aprender, só preciso da funcionalidade de push dele.

Esperando que ajude um usuário mac uma vez.


0

Eu descobri que se eu configurar a autenticação em duas etapas no github, o Eclipse não será capaz de se conectar ao Github - o que faz sentido porque a autenticação em duas etapas no github requer que você insira um número de um SMS (e o Eclipse não faria ter essa informação).

Se este for o seu cenário, você pode considerar a desativação da autenticação em duas etapas no github e ver se isso ajuda.


0

Para as chaves ssh existentes, acho que é um bug no Eclipse Juno 3.8.

O que eu fiz:

1) Carregue a chave existente indo para: Janela> Preferências> "Pesquisar ssh"> Guia Gerenciamento de chave> Carregar chave existente> Selecione a chave privada que você já possui

2) Salve essa chave clicando no botão Salvar chave privada . Vamos chamá- lo de id_dsa_github

3) Agora verifique se empurrar e puxar estão funcionando ou não. Deveria ser.

4) Agora na guia geral, remova a chave privada id_dsa_github e adicione sua chave privada anterior clicando no botão Adicionar chave privada

Agora você está pronto para ir. Está levando pelo menos um tempo para fazer todas as coisas do EGit para se registrar , eu acho.


0

Eu corro para o mesmo problema.

Achei que fosse algo a ver com minhas credenciais e autenticação.

Então, finalmente percebi que o URI que configurei não é uma variante HTTP.

Eu estava tentando enviar para SSH URI do meu Git com configuração HTTP.

Verifique o seu URL em

Perspectiva Git> Remotos> Origem> Configurar Busca> Alterar> Certifique-se de que o prtocal seja HTTPS e a URL seja a versão https .


0

Eu poderia usar o console para enviar / puxar os repositórios, mas não no eclipse. No meu caso, o eclipse parece não conseguir ler minha chave privada SSH, minha chave começou com:

-----BEGIN OPENSSH PRIVATE KEY-----

E percebi que a chave do meu colega começava com:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

Acho que atualmente o eclipse não pode aceitar esse novo tipo de chave (OPENSSH PRIVATE KEY).

Resolvi isso: Regenere sua chave ssh usando o comando:

ssh-keygen -m PEM -t rsa -b 2048

Isso usará a maneira antiga de gerar a chave: portanto, começará com os cabeçalhos:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

veja mais informações sobre:

https://github.com/duplicati/duplicati/issues/3360

Então você pode carregar a chave novamente no eclilpse usando Preferências -> Conexões de rede -> SSH2, clique em "Adicionar chave privada" (ainda selecione sua chave privada, mesmo que você já veja o nome na lista de chaves privadas, porque o eclipse tem que Recarregue-o)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.