Przekazywanie lokalnego repozytorium do repozytorium GitHub, które ma uwierzytelnianie dwuskładnikowe


9

Próbuję przekazać kod w moim lokalnym repozytorium (w systemie OS X 10.8.5 z zainstalowaną i zalogowaną aplikacją GitHub) do repozytorium utworzonego w GitHub za pośrednictwem ich strony internetowej, przy użyciu wiersza polecenia. Co dziwne, kiedy próbuję git push -u origin master, loguję się przy użyciu (poprawnych) poświadczeń GitHub i otrzymuję fatal: Authentication failed.

Używam uwierzytelniania dwuskładnikowego, ale uwierzytelniłem komputer za pomocą tego problemu za pomocą aplikacji GitHub. Mam również odpowiedni klucz SSH do tej operacji.

Co jest przyczyną tego problemu? Jak można to naprawić?

Odpowiedzi:


15

Autoryzacja dwuskładnikowa na ogół nie działa na maszynie - działa na klienta. Gdy logujesz się do GitHub za pomocą przeglądarki internetowej, jest to przeglądarka internetowa, która zapamiętuje pliki cookie, zarówno z informacjami o autoryzacji, jak i statusem 2FA. git nie wie o tym.

Aby przesłać przez HTTP (S), musisz wygenerować dodatkowe hasło („osobisty token dostępu”) na stronie ustawień aplikacji GitHub (użyj przycisku „Utwórz nowy token”). Zauważ, że git może zapamiętać „hasło”, jeśli nie chcesz za każdym razem wpisywać / wklejać.


Wsparcie GitHub wróciło do mnie z tym samym rozwiązaniem, które działa idealnie. Dzięki!
Jules
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.