GitHub: nome de usuário ou senha inválidos

402

Eu tenho um projeto hospedado no GitHub. Falha ao tentar enviar minhas modificações no mestre. Eu sempre recebo a seguinte mensagem de erro

Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/eurydyce/MDANSE.git/'

No entanto, definir minha chave ssh no github parece ok. De fato, quando eu faço uma, ssh -T [email protected]eu recebo

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

O que parece indicar que está tudo bem desse lado (eurydyce é o meu nome de usuário no github). Eu segui rigorosamente as instruções fornecidas no github e as recomendações de muitas discussões de pilha, mas de jeito nenhum. Você tem alguma idéia do que eu posso ter feito de errado?

Eurydice
fonte
Não tenho certeza se devo postar uma resposta (ou não), pois resolvi essa mensagem de erro alterando a senha nas configurações do github depois de tentar várias tentativas com a senha "correta" (verifique pelo elemento de inspeção).
Fruit

Respostas:

274

https: //[email protected]/eurydyce/MDANSE.git não é um URL ssh, é um https (que exigiria o nome da sua conta do GitHub, em vez de ' git').

Tente usar ssh://[email protected]:eurydyce/MDANSE.gitou apenas[email protected]:eurydyce/MDANSE.git

git remote set-url origin [email protected]:eurydyce/MDANSE.git

O OP Pellegrini Eric acrescenta:

Foi o que fiz no meu ~/.gitconfigarquivo que contém atualmente as seguintes entradas[remote "origin"] [email protected]:eurydyce/MDANSE.git

Isso não deve estar na sua configuração global (a que está dentro ~/).
Você pode verificar git config -lem sua repo: que url deve ser declarado no local, config: <yourrepo>/.git/config.

Portanto, verifique se você está no caminho do repositório ao executar o git remote set-urlcomando.


Como observado em Oliver 's resposta , um HTTPS URL não usaria nome de usuário / senha, se autenticação de dois fatores (2FA) é ativado.

Nesse caso, a senha deve ser um PAT (token de acesso pessoal), como visto em " Usando um token na linha de comando ".

Isso se aplica apenas a URLs HTTPS, o SSH não é afetado por essa limitação.

VonC
fonte
ai! Você está certo, fazer essas alterações na minha configuração local fez tudo funcionar. Muito obrigado.
Eurydice
80
Não entendo esta resposta de maneira alguma
Nuvem
11
@ Claro, que parte está faltando clareza, como posso melhorar esta resposta?
VonC 20/04/19
Eu tinha o link https clone, que não funcionou. Mas substituí pelo git @ url e ele começou a funcionar. Qual poderia ser a razão disso? Também removi algumas entradas do github do meu chaveiro do mac. Isso poderia estar relacionado? No entanto, eu estava usando-o via ssh configurando chaves. Qualquer ponteiro será útil nisso.
cg
11
@byronaltice Se for SSH, significa que você possui um arquivo ~/.ssh/configou %USERPROFILE%\.ssh\configcom uma github.comentrada.
VonC 03/02
1011

Depois de ativar autenticação de dois fatores (2FA), você pode ver algo como isso, ao tentar utilizar git clone, git fetch, git pullou git push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

Porque isso está acontecendo

Na documentação da Ajuda do GitHub :

Depois que o 2FA estiver ativado, você precisará inserir um token de acesso pessoal em vez de um código 2FA e sua senha do GitHub.

...

Por exemplo, quando você acessar um repositório Git usando na linha de comando usando comandos como git clone, git fetch, git pullou git pushcom HTTPS URLs, você deve fornecer seu nome de usuário GitHub e seu acesso pessoal símbolo quando for solicitado um nome de usuário e senha. O prompt da linha de comando não especifica que você deve inserir seu token de acesso pessoal quando ele solicitar sua senha.

Como corrigi-lo

  1. Gere um token de acesso pessoal . (Guia detalhado sobre a criação de um token de acesso pessoal para a linha de comando .)
  2. Copie o token de acesso pessoal.
  3. Tente novamente o comando que você estava tentando e use o token de acesso pessoal no lugar da sua senha.

Pergunta relacionada: https://stackoverflow.com/a/21374369/101662

Oliver
fonte
14
Kudo e upvotes; a nova geração de token é o que eu precisava. Além disso; o "Copiar código" incluía caracteres adicionais (inválidos), então tive que inserir manualmente minha .... chave aleatória de 20 [?] dígitos.
Th3byrdm4n
7
Este foi o meu problema, depois de adicionar a autenticação de 2 fatores, que eu suspeitava, no entanto, a documentação sobre isso estava faltando. Obrigado pela resposta!
precisa saber é o seguinte
11
@BeauSmith: Essa é uma edição muito mais substantiva do que normalmente permitimos. Você basicamente reescreveu completamente esta resposta. Por favor, poste isso como sua própria resposta separada . Veja também O que você faz se alguém basicamente reescreve toda a sua resposta?
Martijn Pieters
8
Vamos todos por favor, permita a decisão de reversão ou não a ser decidida pelo @Oliver aqui - há um perfeitamente som maneira argumento quer
Flexo
10
Editor aqui… Como parece que as pessoas que estão marcando esta resposta como correta (como eu) chegam a esta página para um problema ligeiramente diferente do que o solicitante pretendia, eu estava tentando adicionar alguns termos "google juice" e tornar a resposta mais visualmente atraente, para que outras pessoas que buscam esta solução possam encontrá-la. Tentando melhorar as coisas para a comunidade. B
Beau Smith
86

Etapas da solução:

  1. Painel de controle
  2. Gerenciador de Credenciais
  3. Clique em Credenciais da janela
  4. Na seção Credencial Genérica, haveria git url, atualizar nome de usuário e senha
  5. Reinicie o Git Bash e tente clonar
amoljdv06
fonte
4
Eu estava tendo esse problema com uma versão da empresa do github (usando o nome de usuário / senha local). Esta solução corrigiu.
mkennedy
Em novas janelas, você pode procurar por "credenciais do Windows" ou similar no seu idioma. Aparecerá um resultado e você pode tentar esta solução.
Charles Tempo
11
Solução perfeita para o github local, onde as empresas o obrigam a usar https
avi.elkharrat
56

Se, como eu, você atualizou sua senha e correu git pushpara encontrar esse problema, há uma correção super fácil.

Apenas para usuários de Mac. Você precisa excluir as entradas de acesso ao Keychain do OSX para o GitHub. Você pode fazer isso via terminal executando os seguintes comandos.

Excluindo suas credenciais por meio da linha de comando

Por meio da linha de comando, você pode usar o auxiliar de credenciais diretamente para apagar a entrada de chaveiro.

Para fazer isso, digite o seguinte comando:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

Se for bem sucedido, nada será impresso. Para testar se funciona, tente clonar um repositório do GitHub ou execute sua ação anterior novamente, como no meu caso git push. Se você for solicitado uma senha, a entrada de chaveiro foi excluída.

Ahmad Awais
fonte
2
Para windows: git credential-wincred erase host = github.com protocol = https
Juan Uribe
Encontrei esse problema em um repositório BitBucket. Esta resposta com em host=bitbucket.orgvez do GitHub corrigiu para mim.
Gutch
26

Ao usar o https:// URL para se conectar ao seu repositório remoto, o Git não usará o SSH como autenticação, mas tentará uma autenticação básica por HTTPS. Normalmente, você usaria o URL sem um nome de usuário, por exemplo https://github.com/username/repository.git, e o Git solicitaria que você digite um nome de usuário (seu nome de usuário do GitHub) e sua senha.

Se você usar https://[email protected]/username/repository.git, então você tem predefinir o nome de usuário Git irá utilizar para autenticação: something. Desde que você usou https://[email protected], o Git tentará fazer login usando o gitnome de usuário para o qual sua senha, obviamente, não funciona. Então você terá que usar o seu nome de usuário.

A alternativa é realmente usar o SSH para autenticação. Dessa forma, você evitará digitar sua senha o tempo todo; e como ele já parece funcionar, é isso que você deve usar.

Para fazer isso, você precisa alterar sua URL remota, para que o Git saiba que precisa se conectar via SSH. O formato é então este: [email protected]:username/repository. Para atualizar seu URL, use este comando:

git remote set-url origin [email protected]:username/repository
cutucar
fonte
ao tentar seu comando, recebo a seguinte mensagem warning: remote.origin.url has multiple values. Isso pode ser devido ao fato de eu já ter uma tag remota no meu arquivo ~ / .gitconfig que contém o valor [remote "origin"] [email protected]:eurydyce/MDANSE.git.
Eurydice
18

tente empurrá-lo para o seu ramo novamente. Isso pedirá seu nome de usuário e senha novamente, para que você possa alimentar a senha alterada. Para que sua nova senha seja armazenada novamente no cache.

Shiva Rajkumar
fonte
4
Não sei por que isso teve um voto negativo. No meu caso, minhas credenciais foram atualizadas e a segunda git pushsolicitou a atualização apropriada, como indica esta resposta.
Digital Trauma
Não tenho certeza, que você quis dizer, não é pedir novas credenciais execução git push origin master...
Betlista
13

Em vez de git pulltambém tentargit pull origin master

Mudei a senha e o primeiro comando deu erro:

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

Depois git pull origin master, solicitou a senha e pareceu se atualizar

Paulo
fonte
7

Não há necessidade de confiar em Gerar um token de acesso pessoal e tentar usar o token de acesso pessoal no lugar da sua senha.

Solução rápida é definir seu URL remoto para apontar para sshnão https.

Faça isso git remote set-url origin [email protected]:username/repository

Divyanshu Rawat
fonte
5

Estou recebendo isso ao clonar o aplicativo do bitbucket:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

Eu resolvi isso. Aqui você precisa criar uma senha para o seu ID do usuário

  1. Clique em Seu perfil e configurações Clique em Seu perfil e configurações

  2. Em seguida, crie a senha do aplicativo, escolha o seu nome, a senha será gerada, cole essa senha no terminal Criar senha do aplicativo

prachit
fonte
4

Desabilitar a autenticação de dois fatores no github funcionou para mim.

Vejo que há uma resposta excluída que diz isso, com o motivo da exclusão como "não responde à pergunta". Se funcionar, acho que responde à pergunta ...

GreenAsJade
fonte
Isso é estranho. O mesmo aconteceu comigo. Acabei de desativar a autenticação de dois fatores e agora funciona para mim. :)
abhijeetps 14/06/19
Isso funcionou para mim em junho de 2020. Obrigado!
Gcamara14 10/06
4

Eu fiz:

$git pull origin master

Depois, pediu o [Nome de usuário] e a [Senha] e parece estar funcionando bem agora.

ZaMy
fonte
Isso funcionou para mim. Eu usei buscar em vez puxar, mas mesmo assim não importa. Legal!
atereshkov
2

Caso você receba esta mensagem de erro nesta situação:

  • usando o github para empresa
  • usando credential.helper = wincred na configuração do git
  • usando suas credenciais do Windows que você mudou recentemente

Então olhe para esta resposta: https://stackoverflow.com/a/39608906/521257

O Windows armazena credenciais em um gerenciador de credenciais, limpe-o ou atualize-o.

BiAiB
fonte
1

Você pode estar recebendo este erro porque atualizou sua senha. Portanto, no Terminal, primeiro limpe suas credenciais do GitHub do chaveiro e depois faça as alterações no seu repositório, o terminal solicitará seu nome de usuário e senha.

Paras saini
fonte
1

Eu tive o mesmo problema. E resolvi alterando o caminho da ramificação remota de https://github.com/YourName/RepoNamepara [email protected]:YourName/RepoName.gitnas configurações do repositório do aplicativo cliente.

Olga Kliushkina
fonte
1

Estou constantemente enfrentando esse problema. Certifique-se de definir git --config user.name "" e não seu nome real, o que eu fiz algumas vezes ..

Arthur Bowers
fonte
0

Como você provavelmente deseja manter o 2FA ativado para sua conta, você pode configurar uma chave ssh e, dessa forma, não precisará digitar suas credenciais do Github toda vez que quiser enviar trabalho para o Github.

Você pode encontrar todas as etapas de configuração do ssh na documentação . Primeiro, verifique se você não possui nenhuma chave ssh (id_rsa.pub etc.) com$ ls -al ~/.ssh

Dwyer
fonte
-1
  1. Painel de controle
  2. Gerenciador de Credenciais
  3. Procure pelas opções webcredentials e windows credentials
  4. em qualquer um deles, você encontrará credenciais do github corrigindo-as com credenciais corretas
  5. Abra uma nova instância do git bash, você poderá executar seus comandos git.

Isso funcionou para mim, eu fui capaz de puxar e empurrar para o meu repo remoto.

Ajay Deepak
fonte
-1

Acabei de desativar a autenticação de dois fatores e tente novamente. Funciona para mim.

Muhammad Awais
fonte
-3

Esta solução funcionou para mim:

  1. abrir Painel de Controle
  2. Vá para o Credential Manager
  3. Clique em Credenciais da janela
  4. Na seção Credencial Genérica, haveria git url, atualizar nome de usuário e senha
  5. Reinicie o Git Bash e tente clonar
Sandesh Jayaprakash
fonte
11
Esta resposta duplica uma resposta existente que não é útil. Quando você tem reputação suficiente (15, acredito), pode votar nas respostas que achar úteis. A votação seria a resposta correta, em vez de adicionar esta resposta duplicada.
AdrianHHH 28/02/19