O push do Git resulta em "Falha na autenticação"

705

Tenho vindo a utilizar Github por pouco tempo e eu tenho sido muito bem com git add, git commite git pushaté agora sem problemas. De repente, estou tendo um erro que diz:

fatal: Falha na autenticação

No terminal, clonei um repositório, trabalhei em um arquivo e depois git addadicionei o arquivo ao log de confirmação e, quando o fiz git commit, funcionou bem. Por fim, git pushsolicita nome de usuário e senha. Eu os coloquei corretamente e toda vez que faço isso, diz o mesmo erro.

Alguém tem alguma idéia de qual é a causa desse problema e como posso corrigi-lo?

O conteúdo de .git/configsão:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############
Zkirkland
fonte
qual é o seu nome de usuário no github e qual é o conteúdo do .git / config?
Mjagel #
adicioná-lo à pergunta, comentários dont lidar com texto longo
mnagel
Sim, desculpe, eu comecei o comentário por hábito e depois mudei.
zkirkland
Seu URL não parece certo. Eu acho que deveria começar https://, não http://.
John Szakmeister
Alterado para https ... não funcionou.
zkirkland

Respostas:

1203

Se você ativou a autenticação de dois fatores na sua conta do Github, não poderá enviar via HTTPS usando a senha da sua conta. Em vez disso, você precisa gerar um token de acesso pessoal. Isso pode ser feito nas configurações do aplicativo da sua conta do Github. O uso desse token como senha deve permitir o envio ao repositório remoto via HTTPS. Use seu nome de usuário como de costume.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Você também pode precisar atualizar a origem do seu repositório, se definido como https:

git remote -v 
git remote remove origin 
git remote add origin [email protected]:user/repo.git  
rc0r
fonte
5
De fato. +1. Apresento o PAT aqui stackoverflow.com/a/19223896/6309 e detalho o processo lá: stackoverflow.com/a/18607931/6309
VonC
3
Eu precisava gerar minhas chaves rsa recentemente para que as operações normais do Git funcionassem depois de ativar o 2FA.
R11G
5
Obrigado! Só tive esse erro e isso ajudou, apenas para apontar. Depois de criar seu token de acesso pessoal, você o copia e, ao pressionar o repositório, ele solicita seu nome de usuário e senha. Cole o token de acesso na senha
pourmesomecode
87
você também pode fazer git remote add origin https://username:[email protected]/username/repo.gitpara armazenar seu token de acesso pessoal.
Mailmindlin # 4/16
2
Para mim, bastava habilitar a autenticação SSH da minha máquina local na minha conta do GitHub e depois mudar para o endereço remoto ssh git; help.github.com/articles/changing-a-remote-s-url
user5359531
603

Tente as seguintes etapas para editar ou remover as credenciais salvas:

  1. Clique em Iniciar
  2. Tipo: Credential Manager (no Windows 10, isso está em "Iniciar-> Configurações". Em seguida, procure por "Credential Manager")
  3. Veja o Windows Credentials Manager atalho e clique duas vezes nele para abrir o aplicativo.
  4. Quando o aplicativo estiver aberto, clique no Windows Credentials guia.
  5. Localize as credenciais que você deseja remover / atualizar, elas começarão com "git:" e poderão começar com "ada:"
  6. Clique na entrada da credencial, ela abrirá uma exibição de detalhes da entrada.
  7. Clique em Editar ou Remover, conforme necessário, e confirme.
  8. Lave, enxágue, repita conforme necessário.

insira a descrição da imagem aqui

Pradeep
fonte
2
No meu caso, não está em "Credenciais do Windows", mas em "Credenciais genéricas". Remova a credencial, faça o truque.
Toni Gamez
8
Você pode abrir a janela acima por (Windows + R) -> "controle / nome Microsoft.CredentialManager"
Sufiyan Ansari
As credenciais podem estar lá, mas sem o 'git:' na frente. Isso não vai funcionar. Ele precisa começar com 'git:'
Marques
1
Meu empregador configurou a autenticação do Windows para o Git Hub; portanto, toda vez que eu alterava minhas credenciais do Windows, era necessário atualizá-lo para o controle de origem. Sua resposta funcionou.
shary.sharath
1
Resposta fantástica. Mantemos um repositório BitBucket interno, onde cada uma das nossas credenciais de conta é autenticada em nossa organização. Recentemente, todos os meus repositórios ficaram indisponíveis para enviar alterações de código. Embora eu pudesse alterar as credenciais caso a caso, eu realmente não queria fazer isso em todos os projetos. A abordagem do @ Pradeep me permitiu resolver a causa subjacente, que era mais do que simplesmente uma alteração de senha. Nossa organização recentemente alterou o nome do domínio interno; portanto, editando as credenciais centralmente, pude consertar todos os meus projetos.
Michael M
79

Isso funcionou para mim e também lembra minhas credenciais:

  1. Execute gitbash

  2. Aponte para o diretório repo

  3. Corre git config --global credential.helper wincred

Utukku
fonte
18
Demorei um pouco para descobrir o que isso faz - ele usa o Credential Manager no Painel de Controle do Windows. Para parar de usá-lo: git config –global credential.helper unset Origem e mais detalhes nesta resposta .
26616 Ian W
7
@IanW Você quer dizer git config --global --unset credential.helper? Foi o que funcionou para mim no Git Bash.
Ellen Spertus
1
Tenha cuidado com este comando, ele substituirá o caminho real do seu assistente de credencial por simplesmente "wincred", que aparentemente não é o que você precisa.
amarax
2
Eu executei este comando para descobrir que não era o que eu queria, a maneira correta de desarmar é git config --global --unset credential.helper. Por fim, restaurei minha configuração correta com git config credential.helper store.
Omar
Isso me ajuda! Obrigado!
Jefsama #
70

Você alterou a senha recentemente para sua conta git Você pode tentar a opção git pushwith-u

git push -u origin branch_name_that_you_want_to_push

Após executar o comando acima, ele solicitará a senha, fornecer sua senha atualizada

Espero que possa ajudá-lo

Usuários9949
fonte
isso funciona, que o meu ambiente precisa ser httpsúnica
BMW
1
Certamente muito mais fácil do que a maioria das respostas. (E alteração de senhas deve ser a razão mais comum para obter um erro de autenticação ;-))
Michel
Se você estiver enfrentando esse em um clone existente - em seguida, basta fazer umagit push -u
Ajay Chebbi
64

Primeiro, certifique-se de usar o URL adequado:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Então, se estava funcionando antes e se não estava pedindo seu nome de usuário, deve ser porque você armazenou suas credenciais (login / senha) em um $HOME/.netrcarquivo, conforme explicado aqui . Você pode verificar essas configurações e garantir que seu proxy, se você tiver um, não foi alterado.

Se isso ainda não funcionar, você pode alternar para um URL ssh:

git remote set-url origin [email protected]:zkirkland/Random-Python-Tests.git

Mas isso significa que você publicou sua chave pública ssh nas configurações da sua conta .

VonC
fonte
9
Mudar de HTTPS para SSH resolveu o problema para mim.
Leymannx
3
Eu havia ativado a autenticação de dois fatores para minha conta GH e a troca do URL remoto para SSH do HTTPS resolveu o problema "falha na autenticação". Faz sentido. Obrigado!
Walter Roman
55

Isso acontece se você alterar seu login ou senha da conta de serviço git (Git). Você também precisa alterá-lo no Windows Credentials Manager . digite "Credential Manager" no menu Pesquisa do Windows e abra-o.

Gerenciador de credenciais do Windows -> Credencial do Windows e em Credenciais genéricas, edite sua senha do git.

Atif AbbAsi
fonte
4
Isso me salvou ao trabalhar com o GitLab (quando praticamente nada mais ajudou). Obrigado!
John Humphreys - w00te
2
Eu nunca tinha ouvido falar desse gerenciador de credenciais do Windows .... Obrigado!
17179 Sam
1
Forneci credenciais erradas quando o Git solicitou a identificação do usuário e a senha enquanto enviava novos arquivos para o repositório remoto. Quando executei o comando push novamente, o git não solicitou credenciais, mas estava apenas lançando um erro de autenticação com falha. Depois de ler esta resposta, percebi que o git usa credenciais armazenadas no gerenciador de credenciais e esse deve ser o motivo pelo qual o git não solicita a senha toda vez que entramos no repositório remoto. Excluí a senha do git no gerenciador de credenciais, após a qual o git novamente solicitou o ID do usuário e a senha.
Jchenna
41

Basicamente, minha credencial expirou e eu estava enfrentando o problema acima.

O comando 2 a seguir me ajudou:

git config --global --unset credential.helper

git config credential.helper store

Ele solicitará credenciais na próxima vez em que você tentar enviar por push.

Siga as diretrizes abaixo para obter mais detalhes sobre armazenamento protegido e não protegido de nome de usuário e senhas:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache

Jems
fonte
Isso funcionou para mim depois que alterei minha senha no Github e não alterei minhas credenciais localmente.
Scott
33

Se você encontrou um problema de erro de autenticação ao inserir a senha e o nome de usuário corretos, é um problema do git. Para resolver esse problema ao instalar o git em sua máquina, desmarque a opção habilitar o gerenciador de credenciais do gitinsira a descrição da imagem aqui

Hoque MD Zahidul
fonte
1
Corrigido o meu problema
user1929819 de 30/03
consertou o meu também. Graças um milhão!
Brian Edwards
Não encontro esse tipo de solução. Eu reinstalei o git
Hoque MD Zahidul
Fixa o meu problema também (git foi instalado, basta reinstalado wich desmarcar esta: e é ok!)
manatlan
1
Eu também tive que verificar "Usar a biblioteca nativa do Windows Secure Channel". Não está marcado por padrão.
doptrois 5/07
25

Eu acho que, por alguma razão, o GitHub espera que o URL NÃO tenha subdomínio www. Quando eu uso (por exemplo)

git remote set-url origin https://www.github.com/name/repo.git

dá as seguintes mensagens:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

No entanto, se eu usar

git remote set-url origin https://github.com/name/repo.git

funciona perfeitamente bem. Não faz muito sentido para mim ... mas acho que lembre-se de não colocar www no URL remoto para os repositórios do GitHub.

Observe também que os URLs de clone fornecidos na página do repositório do GitHub não incluem o www.

Electo
fonte
4
Não colocar "www" em "github.com" funciona. Como isso importa, o Github deve corrigir o site deles, para que você não possa clonar usando "www".
John Nagle
1
Obrigado :) O meu URL estava ausente do .git, e esse comentário me levou a dar uma olhada e descobrir.
19

Olá, estava recebendo o mesmo erro. Tentei todas as soluções mencionadas nesta página, mas não funcionou. Finalmente, encontrei a solução, pensei em publicá-la. Por favor, corrija-me se estiver errado em algum lugar. Esse tipo de erro ocorre se às vezes a senha do sistema tiver sido alterada recentemente a qualquer momento. Ele tentará validar a senha antiga. Portanto, siga estas etapas:

  1. Vá para o painel de controle
  2. Clique em Contas de usuário
  3. Em Gerenciador de credenciais
  4. Vá para Gerenciar credenciais do Windows
  5. Ir para credenciais genéricas
  6. Expanda a guia servidor git
  7. clique em Remover do cofre

    • Além disso, você pode clicar em editar e alterar sua senha armazenada aqui diretamente.
Kamala Hanchinal
fonte
10

Encontrei "$ git fetch fatal: autenticação falhou para 'http: // ...." depois que minha senha do Windows expirou e foi alterada. Várias buscas, reinicializações e até reinstalações do git com o gerenciador de credenciais do Windows não ajudaram.

Surpreendentemente, a resposta certa em algum lugar aqui nos comentários, mas não nas respostas (e algumas delas são realmente estranhas!). Você precisa ir ao Painel de controle -> Credential Manager / Credenciais do Windows e atualizar sua senha para git: http: // yourrepoaddress

amarax
fonte
9

Não tenho muita certeza do que fiz para obter esse erro, mas fiz:

git remote set-url origin https://...

não funcionou para mim. Contudo:

git remote set-url origin [email protected]:user/repo

de alguma forma funcionou.

Kafeaulait
fonte
3
Você mudou de https para ssh
James Wierzba
Funciona para mim também. Isso não é mágico, é porque eu armazenei a configuração para acesso ssh (com uma chave pública configurada), que não é selecionada para acesso https (que é user / pass + MFA).
Daniel Dubovski 03/03
8

Eu tive o mesmo problema. Defino o URL dessa maneira:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Eu também removido do arquivo de configuração esta entrada: askpass = /bin/echo. Então "git push" me pediu nome de usuário e senha e desta vez funcionou.

Bartosz
fonte
Eu não tinha necessidade de remover do arquivo de configuração esta entrada: askpass = /bin/echo.
Darius Miliauskas
5

No meu caso, alterei recentemente minha senha do Windows e tenho a chave SSH configurada para ações relacionadas ao git (pull, push, busque etc.), depois que encontrei o erro "fatal: falha na autenticação", atualizei minha senha nas janelas O gerenciador de credenciais (Painel de controle \ Contas de usuário \ Gerenciador de credenciais) de todos os itens que começam com git: ... e tentaram novamente, funcionaram desta vez!

Kiran Modini
fonte
3

Se você ativou a autenticação de dois fatores na sua conta do Github, entre na sua conta do GitHub e acesse: https://github.com/settings/tokens/new para gerar um novo token de acesso, copie-o e cole-o como uma senha para autenticação no terminal.

RegarBoy
fonte
2

Se você estiver no Windows e tentando enviar para um servidor Windows com usuários de domínio trabalhando como usuários de repositório (TFS), tente entrar no URL do TFS (por exemplo, http:\\tfs ) com o IE. insira as credenciais da sua conta de domínio e deixe a página aparecer.

CUIDADO use apenas INTERNET EXPLORER! outros navegadores não alteram as credenciais do sistema.

Agora vá para git bash e mude seu usuário remoto para o repositório como abaixo:

git config user.name "domainName\userName"

E pronto, agora você pode empurrar!

AmiNadimi
fonte
1

Para mim, esqueci que havia alterado a senha no Github.com e meu chaveiro para autenticação de shell nunca foi atualizado para essa nova senha. Excluir tudo o git do meu chaveiro e, em seguida, executar novamente a solicitação git ajudou a resolver o problema, solicitando novamente a nova senha.

MMMdata
fonte
1

Apenas para comentar aqui, o que corrigiu o problema para mim foi que simplesmente cancelei o prompt inicial, o ssh foi aberto com minha conta de bitbucket, digitei a senha e tudo funcionou conforme o esperado.

Trevor Hart
fonte
1

Eu estava enfrentando o mesmo problema no Windows. Na maioria das vezes, normalmente enfrento o problema devido ao uso de várias contas git. Se você estiver no Windows, abra o terminal como administrador e tente executar os comandos novamente. Verifique se você possui os direitos de acesso de administrador.

Muema
fonte
1

Eu estava adicionando ao Bitbucket vinculado ao Git e tive que remover as chaves armazenadas, pois isso estava causando o erro fatal.

Para resolver, abri o prompt de comando e executei

 rundll32.exe keymgr.dll, KRShowKeyMgr

Removai a chave responsável pelo login e, na próxima vez em que enviei os arquivos para o repositório, fui solicitada credenciais e inseri as corretas, resultando em um envio bem-sucedido.

William Humphries
fonte
0

Também encontrei o erro (é por isso que cheguei aqui), mas nenhuma das sugestões funcionou para mim. Esta foi a minha primeira vez que tento implantar o Git local no azure. Quando recebi esse erro, redefini minhas credenciais (clicando no link no Azure) após algumas tentativas. O problema é que, neste momento, ele me diz que meu nome de usuário já foi usado, então também mudei meu nome de usuário para outro. No final, excluí manualmente a pasta .git na minha unidade local e a reimplantei sem problemas.

novo homem
fonte
0

Declaração do problema: "falha na autenticação fatal do git". Estou usando o bitbucket.

Solução: simplesmente excluí o usuário do gerenciamento de acesso do bitbucket e adicionei o mesmo usuário. O arquivo .gitconfig é simples

[user]
    name = BlaBla
    email = [email protected]

[push]
    default = simple
J4cK
fonte
0

com credenciais corretas se o problema persistir

se você estiver usando o androidstudio 2.1 beta, então seu bug, atualize para o beta 2 (arquivo de atualização de 3 mb), isso funcionou para mim

geniushkg
fonte
0

Verifique se você tem permissão WRITE para enviar.

read ***write*** admin 
Lay Leangsros
fonte
0

Certifique-se de que sua chave ssh seja adicionada à sua sessão ssh atual.

  1. Copie a saída cat ~/.ssh/id_rsa.pubpara as configurações do GitHub nas teclas SSH e GPG.

  2. Atualize sua sessão ssh atual com ssh-add ~/.ssh/id_rsa.pub

Estou usando o Windows Powershell com o Openssh instalado.

Pedro
fonte
0

no canário do Android studio build 3.1+, se você estiver usando a ferramenta git do Android studio, poderá usar o seguinte:

  • Clique no Android Studio
  • Clique em Preferências ...
  • GO no VersionControl -> Github
  • Aqui, altere o tipo de autenticação para senha
  • Esta etapa exigirá que você insira o login e a senha. Digite o nome de usuário do github como login e a senha do github como senha.
  • Clique no botão Testar.

Se a conexão for bem-sucedida, você estará pronto e poderá usar o cliente de UI do android studio github.

Tarun
fonte
0

Se você estiver usando ssh e clonado com https, isso não funcionará. Clone com ssh e pressione e puxe deve funcionar conforme o esperado!

GoldenWest
fonte
0

Caso isso seja tangencialmente útil, já que esta questão é agora a principal causa de problemas de autenticação http com o git: O Windows Credential Manager armazenou minha senha corretamente e, desde que eu estava usando o Git LFS, configurei um URL http em vez do ssh habitual: / / .

Meu problema foi que minha política de senha corporativa forçou uma alteração na senha da conta, mas nunca atualizei minhas credenciais armazenadas (pois sempre uso uma chave ssh).

Simplesmente atualizar a senha diretamente na interface gráfica do Wincred funcionou: basta procurar uma git:https://<your-url>entrada.

msanford
fonte
0

Isso aconteceu conosco depois de forçar a "autenticação de dois fatores" antes do login no Gitlab. Tivemos que colar o texto dentro de id_rsa.pub no Gitlab e, em seguida, reintroduzir o repositório no código VS usando o terminal.

Onat Korucu
fonte