Mam projekt hostowany na GitHub. Nie udaje mi się, gdy próbuję pchnąć moje modyfikacje na master. Zawsze pojawia się następujący komunikat o błędzie
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/eurydyce/MDANSE.git/'
Jednak ustawienie mojego klucza ssh na github wydaje się być w porządku. Rzeczywiście, kiedy to robię ssh -T [email protected]
, dostaję
Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.
Co wydaje się wskazywać, że z tej strony wszystko jest w porządku (eurydyce to moja nazwa użytkownika github). Ściśle przestrzegałem instrukcji podanych na github i zaleceniach wielu dyskusji o stosach, ale nie ma mowy. Czy miałbyś pojęcie o tym, co mogłem zrobić źle?
Odpowiedzi:
https: //[email protected]/eurydyce/MDANSE.git nie jest adresem ssh, jest adresem https (który wymagałby nazwy twojego konta GitHub zamiast „
git
”).Spróbuj użyć
ssh://[email protected]:eurydyce/MDANSE.git
lub po prostu[email protected]:eurydyce/MDANSE.git
OP Pellegrini Eric dodaje:
Nie powinno to być w twojej globalnej konfiguracji (tej w
~/
).Można sprawdzić
git config -l
w swoim repo: że url powinny być zadeklarowane w lokalnym config:<yourrepo>/.git/config
.Podczas wykonywania
git remote set-url
polecenia upewnij się, że jesteś na ścieżce repozytorium .Jak zauważono w Oliver „s odpowiedzi , HTTPS URL nie będzie używać nazwy użytkownika / hasła, jeśli uwierzytelnianie dwuskładnikowe (2fa) jest aktywna.
W takim przypadku hasłem powinien być PAT (osobisty token dostępu), jak widać w „ Korzystanie z tokena w wierszu poleceń ”.
Dotyczy to tylko adresów URL HTTPS, ograniczenie to nie dotyczy SSH.
źródło
~/.ssh/config
lub%USERPROFILE%\.ssh\config
plik zgithub.com
wpisem.Po włączeniu Two Factor Authentication (2fa), można zobaczyć coś takiego podczas próby użycia
git clone
,git fetch
,git pull
lubgit push
:Dlaczego tak się dzieje
Z dokumentacji pomocy GitHub :
Jak to naprawić
Powiązane pytanie: https://stackoverflow.com/a/21374369/101662
źródło
Kroki rozwiązania:
źródło
Tylko dla użytkowników komputerów Mac. Musisz usunąć wpisy dostępu do pęku kluczy OSX dla GitHub. Możesz to zrobić przez terminal, uruchamiając następujące polecenia.
Usuwanie poświadczeń za pomocą wiersza polecenia
Za pomocą wiersza polecenia można użyć pomocnika poświadczeń bezpośrednio, aby usunąć wpis pęku kluczy.
Aby to zrobić, wpisz następujące polecenie:
Jeśli się powiedzie, nic nie zostanie wydrukowane. Aby sprawdzić, czy to działa, spróbuj sklonować repozytorium z GitHub lub ponownie uruchom poprzednią akcję, jak w moim przypadku
git push
. Jeśli pojawi się monit o hasło, wpis pęku kluczy został usunięty.źródło
host=bitbucket.org
zamiast GitHub naprawiła go dla mnie.Gdy używasz
https://
adresu URL do łączenia się ze zdalnym repozytorium, Git nie użyje SSH jako uwierzytelnienia, ale zamiast tego spróbuje podstawowego uwierzytelnienia przez HTTPS. Zwykle wystarczy użyć adresu URL bez nazwy użytkownika, nphttps://github.com/username/repository.git
Git poprosi Cię o podanie zarówno nazwy użytkownika (nazwa użytkownika GitHub), jak i hasła.Jeśli używasz
https://[email protected]/username/repository.git
, to trzeba zaprogramować nazwę użytkownika Git będzie używany do uwierzytelniania:something
. Odkąd użyłeśhttps://[email protected]
, Git spróbuje się zalogować przy użyciugit
nazwy użytkownika, dla której twoje hasło oczywiście nie działa. Więc będziesz musiał użyć swojego zamiast tego nazwy użytkownika.Alternatywą jest użycie SSH do uwierzytelnienia. W ten sposób unikniesz konieczności ciągłego wpisywania hasła; a ponieważ wydaje się, że już działa, powinieneś z niego korzystać.
Aby to zrobić, musisz jednak zmienić swój zdalny adres URL, aby Git wiedział, że musi się połączyć przez SSH. Format jest to ten:
[email protected]:username/repository
. Aby zaktualizować adres URL, użyj tego polecenia:źródło
warning: remote.origin.url has multiple values
. Może to wynikać z faktu, że mam już zdalny znacznik w moim pliku ~ / .gitconfig, który zawiera tę wartość[remote "origin"] [email protected]:eurydyce/MDANSE.git
.po prostu spróbuj ponownie pchnąć go do swojego oddziału. Spowoduje to ponowne podanie nazwy użytkownika i hasła, aby można było wprowadzić zmienione hasło. Aby nowe hasło zostało ponownie zapisane w pamięci podręcznej.
źródło
git push
monitował o odpowiednią aktualizację, jak wskazuje ta odpowiedź.git push origin master
...Zamiast
git pull
też spróbowaćgit pull origin master
Zmieniłem hasło, a pierwsze polecenie dało błąd:
Potem
git pull origin master
poprosił o hasło i wydawał się aktualizowaćźródło
Nie trzeba polegać na generowaniu osobistego tokena dostępu, a następnie próbowaniu korzystania z osobistego tokena dostępu zamiast hasła.
Szybka poprawka polega na ustawieniu zdalnego adresu URL tak, aby
ssh
nie wskazywałhttps
.Zrób to
git remote set-url origin [email protected]:username/repository
źródło
Otrzymuję to podczas klonowania aplikacji z bitbucket:
Rozwiązałem to. Tutaj musisz utworzyć hasło do swojego identyfikatora użytkownika
Kliknij Twój profil i ustawienia
Następnie utwórz hasło do aplikacji, wybierz nazwę, którą wygeneruje hasło, wklej to hasło do terminala
źródło
Dla mnie zadziałało wyłączenie uwierzytelniania dwuskładnikowego w github.
Widzę, że istnieje usunięta odpowiedź, która to mówi, z powodem usunięcia jako „nie odpowiada na pytanie”. Jeśli to działa, myślę, że odpowiada na pytanie ...
źródło
Zrobiłem:
Następnie poprosił o [Nazwa użytkownika] i [Hasło] i wydaje się, że teraz działa dobrze.
źródło
W przypadku wyświetlenia tego komunikatu o błędzie w tej sytuacji:
Następnie spójrz na tę odpowiedź: https://stackoverflow.com/a/39608906/521257
System Windows przechowuje poświadczenia w menedżerze poświadczeń, wyczyść je lub zaktualizuj.
źródło
Być może pojawia się ten błąd, ponieważ zaktualizowałeś hasło. Tak więc na terminalu najpierw upewnij się, że wyczyściłeś poświadczenia GitHub z pęku kluczy, a następnie wypchnij zmiany do repozytorium, terminal poprosi o nazwę użytkownika i hasło.
źródło
Miałem ten sam problem. I rozwiązałem to, zmieniając ścieżkę zdalnego oddziału z
https://github.com/YourName/RepoName
na[email protected]:YourName/RepoName.git
w ustawieniach repozytorium aplikacji klienckiej.źródło
Ciągle napotykam ten problem. Upewnij się, że ustawiłeś git --config user.name "", a nie swoje prawdziwe imię, co zrobiłem kilka razy ..
źródło
Ponieważ prawdopodobnie chcesz włączyć 2FA dla swojego konta, możesz skonfigurować klucz ssh, dzięki czemu nie będziesz musiał wpisywać poświadczeń Github za każdym razem, gdy będziesz chciał przekazać pracę do Github.
Wszystkie kroki konfiguracji ssh można znaleźć w dokumentacji . Po pierwsze, upewnij się, że nie masz obecnie żadnych kluczy ssh (id_rsa.pub itp.)
$ ls -al ~/.ssh
źródło
To działało dla mnie, byłem w stanie przyciągnąć i wcisnąć moje zdalne repozytorium.
źródło
Po prostu wyłączam uwierzytelnianie dwuskładnikowe i próbuję ponownie. Mi to pasuje.
źródło
To rozwiązanie działało dla mnie:
źródło