Autenticação do GitHub com falha em https, retornando endereço de email errado


128

Iniciar um push ou qualquer outra ação com o GitHub a partir da linha de comando (sobre https, não ssh) que solicita o nome de usuário e a senha não apenas falha, mas, quando o faz, retorna

Username for 'https://github.com': username
Password for 'https://username@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/username/repository.git/'

Eu não tenho um @github.comendereço. A senha e o nome de usuário estão corretos.

Eu sei que poderia mudar para SSH e usar chaves, mas isso não responde por que a autenticação está com falha em https.


Documentação git-scm.com/book/en/... git-config - get e set de repositório ou globais opções git-scm.com/docs/git-config
John Smith

Respostas:


171

O suporte do GitHub determinou a raiz do problema imediatamente: autorização de dois fatores.

Para usar o GitHub sobre o shell com https, crie um token OAuth . Como a página observa, eu tive que remover minhas credenciais de nome de usuário e senha do Keychain, mas, com o osx-keychainlocal, o token é armazenado como a senha e as coisas funcionam exatamente como funcionariam em https sem autorização de dois fatores.


4
+1. Você também pode usar um PAT (Personal Access Token) em um netrc criptografado: stackoverflow.com/a/18607931/6309
VonC

Qual é a diferença entre um PAT e um OAuth?
lindhe

@lindhe O token OAuth é um tipo de token; nesse caso, o PAT é um token OAauth.
Kerry Jones

22

Eu não tenho @github.comendereço

Você não precisa: o @separador entre o nome de usuário: senha e o domínio.
Não é um endereço de email.

Um URL completo do GitHub https seria:

https://username:password@github.com/username/reponame.git

Sem a senha (que seria solicitada na linha de comando), isso daria:

https://username@github.com/username/reponame.git

Mas, novamente, username@github.comnão é um endereço de email, apenas a primeira parte das credenciais.

Verifique se o seu usernamee reponameestá correto: é sensível a maiúsculas e minúsculas .

Observe que você pode armazenar e criptografar suas credenciais em um .netrc.gpg(ou _netrc.gpgno Windows), se não quiser colocar essas credenciais claras no URL.
Consulte " Existe uma maneira de pular a digitação de senha ao usarhttps://github ".


Você também pode deixar a senha de fora, digitando-a sempre. Nesse caso, seria https://username@github.com/username/reponame.git.
precisa saber é o seguinte

Oh, isso faz sentido. Obrigado. Eu sabia sobre a distinção entre maiúsculas e minúsculas e tenho certeza de que o nome de usuário e a senha que estou fornecendo estão corretos. (Eles funcionam bem para entrar no site.) A
ele 4/14

2
@ele sim, mas sua senha inclui caracteres especiais (como ! * ' ( ) ; : @ & = + $ , / ? # [ ])? Eles precisariam ser "codificados em porcentagem" ( en.wikipedia.org/wiki/Percent-encoding ).
VonC 4/14

A senha é alfanumérica. Vou ver o que o 'git remote -v' fornece quando for o próximo na máquina, mas parece que talvez precise entrar em contato com o suporte do GitHub a seguir.
ELE

@ele tente a abordagem .netrc primeiro (nem criptografe, apenas para teste). Se isso não funcionar, o suporte ao GitHub é realmente o próximo passo.
VonC 4/14

21
  • Vá para Credential Manager => Windows Manager
  • Exclua tudo relacionado a tfs
  • Agora clique em Adicionar uma credencial genérica e forneça os seguintes valores

    (1) Endereço na Internet ou na rede: git: https: //tfs.donamain name (2) nome de usuário: seu nome de usuário (3) senha: sua senha

    isso deve corrigi-lo


Uau. Eu amo como ele armazena a senha incorreta se você digitar errado. Então você tem que ir manualmente atualizá-lo ou apagá-lo
Kolob Canyon

10

Pode acontecer no Windows se você tiver armazenado credenciais diferentes antes. Vá para o Credential Manager e exclua as credenciais do github armazenadas


1
Também é possível editar diretamente a senha no Windows Credential Manager para a nova senha.
Spenhouet 17/09/18


8

A mesma coisa aconteceu comigo, quando habilitei a autenticação bidirecional para o github. Coisas que fiz para resolver:

  • Obtenha seu token de acesso pessoal. É necessário verificar e gerar se já não estiver disponível. Link para isso: https://github.com/settings/tokens
  • Vá para o seu local e exclua a pasta e clone novamente a ramificação do github.
  • Agora tente o comando que você estava tentando anteriormente, ou seja: git pull origin master
  • Digite o nome de usuário e na senha, cole o token gerado e também não esqueça de salvar esse token em algum lugar, para que você possa reutilizá-lo, se necessário.

Fazer isso resolverá seu problema.


Texto explicativo bom - isso estava acontecendo comigo no mac => tive que regenerar meu PAT
SliverNinja - MSFT

Temos que gerar o token se precisarmos de permissões que não estejam presentes nos tokens gerados anteriormente. Além disso, se perdemos nosso token anterior, podemos gerar esse novo token e usá-lo como senha para autenticar, em vez de nossa senha git original.
Mohd Belal

5

Caso isso também ajude outras pessoas, eu entrei no aplicativo mac, a linha de comando estava funcionando bem, mas como ativei o 2FA, meus comandos estavam retornando o erro. Eu tive que sair do aplicativo, para poder usar meu token de acesso pessoal em meus comandos conforme a resposta de ele aqui .

Espero que ajude alguém!


-2

No Windows, você pode ser silenciosamente bloqueado pelo firewall do antivírus ou do Windows. Desative temporariamente esses serviços e pressione / puxe de origem remota.

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.