Git Klonen Sie von GitHub über https mit Zwei-Faktor-Authentifizierung

129

Ich habe kürzlich begonnen, die Zwei-Faktor-Authentifizierung auf GitHub zu verwenden, und kann Git auf privaten Repos jetzt nicht mehr wie gewohnt über https verwenden:

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

Wenn ich die Zwei-Faktor-Authentifizierung deaktiviere, kann ich sie wie folgt verwenden:

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.

Ich weiß, dass ich SSH verwenden kann und alles funktioniert, aber gibt es eine Möglichkeit, die Zwei-Faktor-Authentifizierung beizubehalten, während ich GitHub weiterhin über HTTPS verwenden kann, beispielsweise durch Senden eines Authentifizierungstokens mit meiner Anfrage?

Peter-b
quelle

Antworten:

155

Hier erfahren Sie, wie Sie dies beheben können:

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

Wie funktioniert es für Kommandozeilen-Git?

Wenn Sie SSH für die Git-Authentifizierung verwenden, ruhen Sie sich einfach aus: Sie müssen nichts tun. Wenn Sie HTTPS Git verwenden, geben Sie anstelle der Eingabe Ihres Kennworts ein persönliches Zugriffstoken ein. Diese können erstellt werden, indem Sie auf Ihre Seite mit persönlichen Zugriffstoken gehen .

Nitsew
quelle
2
Sie können das Token zur .netrc-Datei hinzufügen, wie ich in der folgenden Übersicht gefunden habe , um die Authentifizierung ebenfalls automatisch zu machen.
Martin Woolstenhulme
1
Aber ich benutze ssh, wenn ich von github ziehe, deutet es mich auch an, Passwort und Benutzernamen einzugeben, warum das? Danke für deine Antwort!
Starkshang
3
Nach der Eingabe des Zugriffstokens auf dem Mac nach dem Sudo Git-Klon funktioniert es immer noch nicht. Das System fragt nach dem Benutzernamen und dem Kennwort im Kennwortfeld. Ich gebe das Token ein, aber es funktioniert nicht für mich. bekommen den gleichen Fehler
ojus kulkarni
39
Verwenden Sie Ihr Token als Benutzernamen und geben Sie ein leeres Passwort ein.
Kotie Smit
Beachten Sie den zusätzlichen zusätzlichen Speicherplatz, wenn Sie das Token manuell von der Github-Site kopieren (dh wenn Sie die Github-Kopiertaste nicht verwenden). Ich habe eine Weile gebraucht, um zu verstehen, warum das bei mir nicht funktioniert hat.
Gmargari
34

Wie pro @ Nitsew die Antwort, Erstellen Sie Ihren persönlichen Zugriffstoken und Token als Benutzername verwenden und mit leerem Passwort eingeben.

Später benötigen Sie keine Anmeldeinformationen, um auf alle Ihre privaten Repos zuzugreifen.

Sunil Targe
quelle
Wo würden Sie empfehlen, das Zugriffstoken auf einem Remote-Server zu speichern?
Bdoubleu
2

Für alle, die Probleme hatten, funktionierte es für mich, ein persönliches Zugriffstoken zu erstellen und es dann als Benutzernamen UND Passwort zu verwenden (in der daraufhin angezeigten Eingabeaufforderung).

Zvone
quelle
1

Wenn für Ihr Repo 2FA aktiviert ist. Es wird dringend empfohlen, die von github.com bereitgestellte App zu verwenden. Hier ist der Link: https://desktop.github.com/

Nachdem Sie es heruntergeladen und installiert haben. Folgen Sie dem Withard. Die App fordert Sie auf, das Einmalkennwort für die Anmeldung anzugeben. Sobald Sie das Einmalpasswort eingegeben haben, können Sie jetzt Ihr Repo / Ihre Projekte sehen.

Richard
quelle
hilft nur, wenn Sie Windows verwenden
Ian Turton