Jak zresetować zapisane poświadczenia w „git credential-osxkeychain”?


98

Postępowałem zgodnie z instrukcjami GitHub dotyczącymi konfigurowania konta i mogę klonować, ale nie mogę zdalnie wypychać.

Kiedy wykonuję polecenie „git push”, pojawia się błąd 403. Zawiera poprawny adres URL. Wypróbowałem "git credential-osxkeychain get", żeby zobaczyć, co daje, a to wypisuje złe poświadczenia.

Myślę, że to, co się stało, to pierwszy raz, kiedy poprosił o poświadczenia, pomyślałem, że to kolejna aplikacja, która pyta, i umieściła niewłaściwe.

Muszę go tylko zresetować, aby używał właściwego elementu pęku kluczy dla mojego konta GitHub.

Próbowałem:

git credential-osxkeychain erase
git credential-osxkeychain set

Program nigdy nie wyświetla żadnych podpowiedzi. Set powie „złe wejście”, jeśli nie zrobię dobrze. Próbowałem wstawić „ password=password” itd., Ale kiedy robię „get”, nadal dostaję stare.

Nie mogę dowiedzieć się, gdzie są one przechowywane, ponieważ nie ma ich w pliku .gitconfigure. Co więcej, nie ma żadnych niedawnych elementów pęku kluczy, które mogłyby to być. (Mam kilka kont GitHub w moim pęku kluczy i nie używam żadnego z nich).




Odpowiedzi:


123

Z terminala:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

UWAGA: po wpisaniu powyżej „protocol = https” należy dwukrotnie nacisnąć ~~ RETURN ~~


2
Z jakiegoś powodu nie mogłem znaleźć żadnych poświadczeń Git / GitHub w aplikacji Keychain, ale to zadziałało. Dzięki!
Donald

4
Ponieważ nie było to dla mnie jasne: musisz wprowadzić wszystkie 3 wiersze powyżej, a następnie ponownie nacisnąć klawisz Return - tj. Linie 2/3 powyżej nie są wyprowadzane z polecenia, ale wprowadzane.
Frederik

Ta odpowiedź mi pomogła. Dziękuję Ci bardzo!
Ken Flake

70

Nie jestem pewien, jak wymazać za pomocą wiersza poleceń, ale dość łatwo jest to zrobić za pomocą aplikacji Dostęp do pęku kluczy. Po prostu przejdź do Applications -> Utilties -> Keychain Access, a następnie wpisz „github.com”. Możesz usunąć nieprawidłowy element lub zaktualizować hasło z poziomu aplikacji.


4
Jeśli ktoś czytający to wymyśli, jak to zrobić z wiersza poleceń, dobrze byłoby wiedzieć.
funroll

1
@funroll Narzędziem wiersza poleceń jest security. Strona podręcznika podaje, że zawiera delete-internet-passwordpolecenie.
benzado

Dzięki za aktualizację, jestem pewien, że komuś się przyda.
funroll

to najlepsze rozwiązanie
Elias Fazel

Z jakiego pęku kluczy?
Bryan Bryce

29

Rozwiązanie okazało się takie:

Komenda git credential-osxkeychainużywał pierwszy wpis w moim koncie GitHub pęku kluczy. Ten nie był tym, który miał dostęp do omawianych projektów.

Rozwiązałem problem dotykając konta w Dostępie do pęku kluczy, aby zmieniła się jego data (myślę, że właśnie zmieniłem komentarz), a teraz, gdy stało się to najnowszym kontem GitHub, stało się pierwszym, które powróciło do poświadczeń-osxkeychain, a więc wszystko działało .

Lepsza forma obsługi wielu kont GitHub byłaby miła, ale jest prawdopodobne, że większość ludzi ma tylko jedno konto główne i nie ma tego problemu.


2
Nie jestem pewien, jak to działa dla wielu użytkowników na tym samym hoście, ale możesz sprawdzić ssh i użyć ~/.ssh/configpliku zamiast używać pęku kluczy OSX. Jest to używane w przypadkach, gdy możesz mieć wiele kluczy ssh dla różnych hostów (a także myślących kont). nerderati.com/2011/03/17/…
jusopi

10

git-credential-osxkeychain przechowuje hasła w pęku kluczy Apple, jak wspomniano powyżej.

Domyślnie gitcredentials bierze pod uwagę tylko nazwę domeny. Jeśli chcesz, aby Git uwzględnił pełną ścieżkę (np. Jeśli masz wiele kont GitHub), ustaw useHttpPathzmienną na true, jak opisano na http://git-scm.com/docs/gitcredentials.html . Zwróć uwagę, że zmiana tego ustawienia spowoduje ponowne żądanie poświadczeń dla każdego adresu URL.


7

Na komputerze Mac użyj polecenia git credential-osxkeychain erase.

LUB usuń ręcznie z pęku kluczy z AplikacjeNarzędziaDostęp do pęku kluczy . Następnie usuń pęku kluczy github.com. Następnie użyj push; zapyta o dostęp do pęku kluczy; następnie zaprzeczyć.

Zapyta o nową nazwę użytkownika i hasło, doda je, a następnie wypchnie plik.

Po tym, git pushjak znalazłem ten błąd. Następnie używam wielkich liter - problem:

zdalny: Odmowa dostępu dla użytkownik1 / plik.git dla użytkownika2 (wcześniej istniejący użytkownik). krytyczny: brak dostępu do „ https://github.com/xxxxxxxxxxxx/ ”: żądany adres URL zwrócił błąd: 403



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.