Git Clone do GitHub sobre https com autenticação de dois fatores

129

Recentemente, comecei a usar a autenticação de dois fatores no GitHub e agora não consigo usar o git sobre https em repositórios particulares da maneira usual:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

Se eu desativar a autenticação de dois fatores, posso usá-la como antes:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

Sei que posso usar o SSH e tudo funciona, mas existe uma maneira de manter a autenticação de dois fatores enquanto ainda posso usar o GitHub sobre HTTPS, por exemplo, enviando um token de autenticação com minha solicitação?

peter-b
fonte

Respostas:

155

Descubra como corrigir isso aqui:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

Como isso funciona para a linha de comando Git?

Se você estiver usando o SSH para autenticação Git, fique tranquilo: você não precisa fazer nada. Se você estiver usando o HTTPS Git, em vez de digitar sua senha, insira um token de acesso pessoal. Eles podem ser criados acessando sua página de tokens de acesso pessoal .

Nitsew
fonte
2
Você pode adicionar o token para o arquivo .netrc como eu encontrei na seguinte essência , para fazer a autenticação automática também.
Martin Woolstenhulme
1
Mas eu estou usando ssh, quando puxado do github, ele também me sugere inserir senha e nome de usuário, por que isso? Obrigado pela sua resposta!
starkshang
3
ainda não está funcionando para mim depois de inserir o token de acesso no mac após o sudo git clone .... o sistema está solicitando nome de usuário e senha no campo de senha Estou digitando o token, mas não está funcionando para mim. obtendo o mesmo erro
ojus kulkarni
39
Use seu token como seu nome de usuário e forneça uma senha em branco.
Kotie Smit
Observe o espaço extra à direita ao copiar manualmente o token do site do github (ou seja, se não estiver usando o botão de cópia do github). Demorei um pouco para entender por que isso não funcionou para mim.
gmargari 17/01
34

De acordo com a resposta do @ Nitsew , crie seu token de acesso pessoal e use-o como seu nome de usuário e digite com uma senha em branco.

Posteriormente, você não precisará de credenciais para acessar todos os seus repositórios particulares.

Sunil Targe
fonte
Onde você recomendaria armazenar o token de acesso em um servidor remoto?
bdoubleu 02/04
2

Para todos que estavam lutando, o que funcionou para mim foi criar um token de acesso pessoal e usá-lo como nome de usuário E senha (no prompt que foi aberto).

Zvone
fonte
1

Se o seu repositório tiver 2FA ativado. Altamente recomendável usar o aplicativo fornecido pelo github.com Aqui está o link: https://desktop.github.com/

Depois de baixado e instalado. Siga o aviso, o aplicativo solicitará que você forneça a senha de uso único para o login. Depois de preencher a senha de uso único, você poderá ver seus repositórios / projetos agora.

Richard
fonte
só ajuda se você usa o Windows
Ian Turton