Git Clone de GitHub sur https avec authentification à deux facteurs

129

J'ai récemment commencé à utiliser l'authentification à deux facteurs sur GitHub, et je suis maintenant incapable d'utiliser git sur https sur les dépôts privés de la manière habituelle:

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/'

Si je désactive l'authentification à deux facteurs, je peux l'utiliser comme avant:

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.

Je sais que je peux utiliser SSH et que tout fonctionne, mais y a-t-il un moyen de conserver l'authentification à deux facteurs tout en continuant à utiliser GitHub sur HTTPS, par exemple en envoyant un jeton d'authentification avec ma demande?

peter-b
la source

Réponses:

155

Découvrez comment résoudre ce problème ici:

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

Comment ça marche pour Git en ligne de commande?

Si vous utilisez SSH pour l'authentification Git, soyez tranquille: vous n'avez rien à faire. Si vous utilisez HTTPS Git, au lieu de saisir votre mot de passe, saisissez un jeton d'accès personnel. Ceux-ci peuvent être créés en accédant à votre page de jetons d'accès personnels .

Nitsew
la source
2
Vous pouvez ajouter le jeton au fichier .netrc comme je l'ai trouvé dans l' essentiel suivant , pour rendre l'authentification automatique également.
Martin Woolstenhulme
1
Mais j'utilise ssh, lorsque je tire de github, cela me suggère également de saisir le mot de passe et le nom d'utilisateur, pourquoi cela? Merci pour votre réponse!
starkshang
3
toujours cela ne fonctionne pas pour moi après avoir entré le jeton d'accès dans mac après sudo git clone .... le système demande le nom d'utilisateur et le mot de passe dans le champ du mot de passe J'entre le jeton mais cela ne fonctionne pas pour moi. obtenir la même erreur
ojus kulkarni
40
Utilisez votre jeton comme nom d'utilisateur et donnez un mot de passe vide.
Kotie Smit
Attention à l' espace supplémentaire à la fin lors de la copie manuelle du jeton depuis le site github (c'est-à-dire si vous n'utilisez pas le bouton de copie github). Il m'a fallu un certain temps pour comprendre pourquoi cela ne fonctionnait pas pour moi.
gmargari le
34

Selon la réponse de @ Nitsew , créez votre jeton d'accès personnel et utilisez votre jeton comme nom d'utilisateur et entrez avec un mot de passe vide.

Plus tard, vous n'aurez pas besoin d'informations d'identification pour accéder à tous vos dépôts privés.

Sunil Targe
la source
Où recommanderiez-vous de stocker le jeton d'accès sur un serveur distant?
bdoubleu le
2

Pour tout le monde en difficulté, ce qui a fonctionné pour moi a été de créer un jeton d'accès personnel, puis de l'utiliser comme nom d'utilisateur ET mot de passe (dans l'invite qui s'est ouverte).

Zvone
la source
1

Si votre dépôt a activé 2FA. Je suggère fortement d'utiliser l'application fournie par github.com Voici le lien: https://desktop.github.com/

Après l'avoir téléchargé et installé. Suivez le withard, l'application vous demandera de fournir le mot de passe unique pour la connexion. Une fois que vous avez rempli le mot de passe à usage unique, vous pouvez voir votre dépôt / projets maintenant.

Richard
la source
n'aide que si vous utilisez Windows
Ian Turton