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ć?

Jules
źródło

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ć.

użytkownik1686
źródło
Wsparcie GitHub wróciło do mnie z tym samym rozwiązaniem, które działa idealnie. Dzięki!
Jules