Git Clone z GitHub przez https z uwierzytelnianiem dwuskładnikowym


129

Niedawno zacząłem korzystać z uwierzytelniania dwuskładnikowego w GitHub i nie mogę teraz używać git przez https w prywatnych repozytoriach w zwykły sposób:

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

Jeśli wyłączę uwierzytelnianie dwuskładnikowe, mogę z niego korzystać jak wcześniej:

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.

Wiem, że mogę używać SSH i wszystko działa, ale czy istnieje sposób, aby zachować uwierzytelnianie dwuskładnikowe, jednocześnie będąc w stanie korzystać z GitHub przez HTTPS, na przykład wysyłając token uwierzytelniania z moim żądaniem?

Odpowiedzi:


156

Dowiedz się, jak to naprawić:

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

Jak to działa w przypadku Gita z wiersza poleceń?

Jeśli używasz SSH do uwierzytelniania Git, nie martw się: nie musisz nic robić. Jeśli korzystasz z HTTPS Git, zamiast wpisywać hasło, wprowadź osobisty token dostępu. Można je utworzyć, przechodząc na stronę osobistych tokenów dostępu .


2
Możesz dodać token do pliku .netrc, jak znalazłem w poniższym skrócie , aby uwierzytelnianie również było automatyczne.
Martin Woolstenhulme

1
Ale używam ssh, kiedy ściągam z github, to również podpowiada mi, żebym wpisać hasło i nazwę użytkownika, dlaczego tak? Dzięki za twoją odpowiedź!
starkshang

3
nadal nie działa dla mnie po wprowadzeniu tokena dostępu w mac po sklonowaniu sudo git .... system pyta o nazwę użytkownika i hasło w polu hasła Wprowadzam token, ale nie działa dla mnie. uzyskiwanie tego samego błędu
ojus kulkarni

40
Użyj swojego tokena jako nazwy użytkownika i podaj puste hasło.
Kotie Smit

Pamiętaj o dodatkowej spacji podczas ręcznego kopiowania tokena ze strony github (np. Jeśli nie używasz przycisku kopiowania github). Zajęło mi trochę czasu, zanim zrozumiałem, dlaczego to nie zadziałało.
gmargari

34

Zgodnie z odpowiedzią @ Nitsew , utwórz swój osobisty token dostępu i użyj swojego tokena jako nazwy użytkownika i wprowadź puste hasło.

Później nie będziesz potrzebować żadnych poświadczeń, aby uzyskać dostęp do wszystkich prywatnych repozytoriów.


Gdzie zaleca się przechowywanie tokena dostępu na serwerze zdalnym?
bdoubleu

2

Dla wszystkich borykających się z problemami, tym, co zadziałało, było utworzenie osobistego tokena dostępu, a następnie użycie go jako nazwy użytkownika ORAZ hasła (w wyświetlonym monicie).


1

Jeśli Twoje repozytorium ma włączone 2FA. Gorąco sugeruję użycie aplikacji dostarczonej przez github.com Oto link: https://desktop.github.com/

Po pobraniu i zainstalowaniu. Postępuj zgodnie z instrukcją, aplikacja poprosi o podanie jednorazowego hasła do logowania. Po wpisaniu jednorazowego hasła możesz teraz zobaczyć swoje repozytorium / projekty.


pomaga tylko, jeśli używasz okien
Ian Turton

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.