GitLab zdalny: HTTP Basic: odmowa dostępu i fatalne uwierzytelnienie

266

Mam Mac OS w przeciwieństwie do tego postu:

Mam skonfigurowane hasło w GitLab.

Mam klucz SSL utworzony PO wykonaniu projektu na GitLab.

Kiedy używam istniejącego folderu do nowego projektu i postępuję zgodnie z poniższymi krokami:

Istniejący folder

cd existing_folder
git init
git remote add origin https://gitlab.com/sobopla/Geronimod.git
git add .
git commit -m "Initial commit"
git push -u origin master

Zostanie wyświetlony monit o podanie nazwy użytkownika i hasła GitLab. Po wprowadzeniu hasła otrzymuję:

zdalny: HTTP Podstawowy: Odmowa dostępu krytyczny: uwierzytelnienie nie powiodło się dla „ https://gitlab.com/myname/myproject

jeancode
źródło
Poniższe odpowiedzi nie działały dla mnie .. Jeśli nadal ktoś napotyka ten problem w systemie Mac ... ten link może pomóc ... stackoverflow.com/questions/17659206/…
PALLAMOLLA SAI

Odpowiedzi:

533

Dzieje się tak za każdym razem, gdy jestem zmuszony zmienić hasło systemu Windows i żadna z powyższych odpowiedzi nie pomogła mi.

Wypróbuj poniższe rozwiązanie, które działa dla mnie:

  1. Przejdź do Windows Credential Manager . Odbywa się to w systemie Windows EN-US poprzez naciśnięcie klawisza Windows i wpisanie „referencji”. W innych zlokalizowanych wariantach systemu Windows należy użyć zlokalizowanego terminu (niektóre przykłady można znaleźć w komentarzach).

    alternatywnie możesz użyć skrótu control /name Microsoft.CredentialManagerw oknie dialogowym uruchamiania (WIN + R)

  2. Edytuj wpis git w sekcji Poświadczenia systemu Windows, zastępując stare hasło nowym.
mpro
źródło
3
Dzięki, to też zadziałało i rozwiązało problem. Potrzebujesz tego rozwiązania, jeśli masz różne konta Github na swoim urządzeniu
Dany Wehbe
4
Dla mnie też zadziałało, chociaż używam wielu kont gilab, więc to, co zrobiłem, zaktualizowałem wszystkie moje konto gitlab tym samym hasłem, które mam w moim menedżerze poświadczeń, a problem został rozwiązany Dzięki @ mpro
Rajan Chauhan
6
Uwaga: wpisz go w swoim systemie językowym. Rus: "Credential Manager" = "Диспетчер Учетных Данных"
Dyno Cris
2
Świetna odpowiedź. Dotyczy to zwłaszcza kont służbowych, w których od czasu do czasu trzeba zmieniać hasła.
geekidharsh
4
W języku niemieckim jest to „Anmeldeinformationsverwaltung”, a następnie „Windows-Anmeldeinformationen”.
nachtigall
169
   git config --system --unset credential.helper

następnie wprowadź nowe hasło do zdalnego serwera Git.

hatanooh
źródło
22
Pamiętaj, że w systemie Windows musisz uruchomić go jako Administrator, w przeciwnym razie
pojawią się
6
To zależy od tego, gdzie umieścisz swoje poświadczenia. Jeśli poprzednie polecenie nie działa, spróbuj również użyć flagi globalnej:git config --global--unset credential.helper
Vincent Lunat
Jest to najistotniejsza odpowiedź dla PO, ponieważ odnosi się do problemu i nie dotyczy stycznej „w systemie Windows”. Na marginesie może być konieczne uruchomienie tego polecenia, tak sudojakby użytkownik nie miał dostępu do/etc
Ghostrydr,
git config --system manager credential.helper, aby ponownie użyć credential.helper.
hatanooh
Jeśli odłączysz pomocnika poświadczeń, będziesz musiał podać nazwę użytkownika i hasło przy każdym połączeniu z repozytorium GIT. Aby to naprawić, możesz ponownie ustawić pomocnika za pomocą następującego polecenia: git config --global credential.helper store
Tomasz Czechowski
85

Wystąpił ten sam błąd i rozwiązałem go przez:

  1. Zastosuj polecenie z cmd (uruchom jako administrator)

    git config --system --unset credential.helper

  2. A potem usunąłem plik gitconfig z C: \ Program Files \ Git \ mingw64 / etc / location (Uwaga: ta ścieżka będzie inna w MAC jak „/ Users / username”)

  3. Po tym użyj polecenia git jak git pulllubgit push , poprosił mnie o nazwę użytkownika i hasło. zastosowanie poprawnej nazwy użytkownika i hasła oraz działającego polecenia git.

mam nadzieję, że to ci pomoże ...

Bharti Ladumor
źródło
11
Jeśli pojawi się ten błąd, możesz po prostu uruchomić wiersz polecenia jako Administrator, a błąd zniknie.
Eternal21
FYI: Po prostu zresetowanie konfiguracji (twój pierwszy cmd) zadziałało. Potem zrobiłem mój git push i blammo! Myślę, że to dlatego, że mój sklep wymaga comiesięcznych zmian haseł, więc wewnętrzny git lab oszalał.
yardpenalty.com
1
spróbuj również w ten sposób z --global git config --global --unset credential.helper
Mike
57

Dla mnie działało:

Nie używaj hasła do GitLab, ale utwórz token dostępu i użyj go zamiast hasła:

  1. W GitLab wybierz Ustawienia > Tokeny dostępu
  2. Utwórz nowy token (sprawdź API )
  3. git clone ...
  4. Gdy pojawi się monit o podanie hasła, skopiuj i wklej token dostępu zamiast hasła GitLab
JavAlex
źródło
4
Pracował również dla mnie!
Christian Ray Leovido,
42

Jedyną rzeczą, która działała dla mnie, było użycie https://username:[email protected]/user/projectgitzamiast https://gitlab.com/user/projectgit. Zobacz https://gitlab.com/gitlab-com/support-forum/issues/1654

Paulo Morgado
źródło
1
Świetna odpowiedź, działa dobrze dla mnie, ponieważ mój dupek był prywatny, dziękuję
Mohammad H.
Dzięki. Chociaż dla mnie muszę go zastąpić adresem URL repozytorium SSL, ale twoja odpowiedź każe mi pomóc. Poparłem to.
Muzzamil
Dzięki. Nie miałem takiego problemu podczas korzystania z BitBucket lub Github. Z GitLab muszę utworzyć osobisty token dostępu, a następnie użyć go w zdalnym git remote set-url origin https://usernameHere:[email protected]/usernameHere/projectNameHere
źródle
37

Przejdź do Menedżera poświadczeń systemu Windows (naciśnij klawisz Windows i wpisz „poświadczenie”), aby edytować wpis git w obszarze poświadczeń systemu Windows. Zastąp stare hasło nowym.

Menedżer poświadczeń systemu Windows

Andy Quiroz
źródło
OP działa na macOS, a nie Windows.
Matthieu Brucher
To nie pomogłoby OP, ale działało jak urok na moim deweloperze Windows.
Tony
27

Miałem też do czynienia z tym samym problemem. Przyczyną problemu był błąd uwierzytelnienia. Aby rozwiązać ten problem, przejdź do Panelu sterowania -> Menedżer poświadczeń -> Ogólne poświadczenia tutaj znajdź poświadczenie gitlab i edytuj je. Upewnij się, że hasło do identyfikatora jest prawidłowe, czy nie

wprowadź opis zdjęcia tutaj

Kshama Jain
źródło
To załatwiło sprawę, w moim przypadku było tak, ponieważ firma zmusza nas do zmiany hasła domeny co kilka miesięcy. Ta zmiana nie zaktualizowała poświadczeń w tym menedżerze poświadczeń. Gdy tylko zaktualizowałem hasło, działało.
k4yaman,
21

Jeśli używasz git> 2.11 i używasz Kerberos do interakcji z Gitlab, musisz ustawić tę konfigurację w lokalnym git, aby uniknąć remote: HTTP Basic: Access deniedbłędu.

$ git config --global http.emptyAuth true

Źródło

Pigueiras
źródło
Ciekawa sprawa z Kerberos. +1
VonC
1
Nie używam Kerberos, ale dziękuję za odpowiedź.
jeancode
Kerberosnie są konieczne. Dzięki! git-scm.com/docs/git-config
contributorpw
Po przeprowadzeniu dziś rano czystej instalacji Gita w systemie Windows. Ta odpowiedź rozwiązała dla mnie błąd odmowy dostępu.
James
Święta krowa - zapoznałem się z wszystkimi pozostałymi sugestiami i nareszcie ten wreszcie zadziałał. Rzeczywiście używał Kerberos!
Bon Crowder na MathFour
19

Po prostu dodaj swoją nazwę użytkownika przed domeną:

https://**username**@gitlab.com/user/projectgit

A asystent zapyta cię o hasło

gal007
źródło
13

Spróbuj tego:

  1. Iść do: C:/Users/(YourUserName)/
  2. Usunąć plik .gitconfig
boy_vkallstar
źródło
12

Otwórz wiersz polecenia jako administrator, a następnie uruchom to polecenie:

git config --system --unset credential.helper
MD Shafayatul Haque
źródło
nie można zablokować pliku konfiguracyjnego C: \ Program Files \ Git \ mingw64 / etc / gitconfig: Odmowa
1
Nie używasz pliku konfiguracyjnego, wystarczy otworzyć wiersz polecenia jako administrator i uruchomić polecenie. Mam nadzieję, że to pomaga
MD. Shafayatul Haque,
12

Dzieje się tak, jeśli zmienisz login lub hasło do konta usługi git (GitHub lub GitLab, Bitbacket itp.). Trzeba to również zmienić w Menedżerze poświadczeń systemu Windows.

Więc wpisz „ Credential Manager ” (rus. „Диспетчер Учетных Данных”) w menu Windows Search i przejdź do konta usługi git i zmień dane.

wprowadź opis zdjęcia tutaj

Dyno Cris
źródło
Chociaż nie zmieniłem mojego użytkownika ani hasła (jest to poświadczenie AD), zdarzyło mi się to z powodu przebudowy serwera Gitlab i powyższe rozwiązanie naprawiło ten błąd.
Michael Hafner,
11

Uwaga: nie mieszaj ustawień GitLab SSL i kluczy GitLab SSH .

Jeśli to, co skonfigurowałeś w swoim profilu GitLab, jest kluczem publicznym SSH, adres URL HTTPS nie użyje go.

Jeśli chodzi o dane uwierzytelniające HTTPS, sprawdź dwukrotnie:

  • jeśli uwierzytelnianie dwuskładnikowe jest wyłączone, lub
  • jeśli w nazwie użytkownika lub haśle masz znaki specjalne, lub
  • jeśli masz Git poświadczeń pomocnika: git config credential.helper.
VonC
źródło
1
- Mam spację w nazwie użytkownika, ponieważ uwierzytelniłem Gitlab przez Github - Uwierzytelnianie dwuskładnikowe jest wyłączone - Co masz na myśli "Jeśli mam pomocnika poświadczeń Git?
jeancode
@jeancode Mam na myśli: co widzisz po wpisaniu git config credential.helper: mogło to zbuforować nieprawidłowe dane uwierzytelniające.
VonC
@jeancode Czy w przestrzeni procentowo to kodowałeś? ( en.wikipedia.org/wiki/Percent-encoding#Character_data:% 20)
VonC
Nie zrobiłem nic z miejscem w nazwie, miejsce pochodzi od mojego imienia w GitHub, które GitLab przechwycił podczas logowania uwierzytelniającego przez Github.
jeancode,
1
Wystąpił błąd z powodu próby użycia kluczy wdrażania, gdy włączone było uwierzytelnianie dwuskładnikowe. Najwyraźniej możesz używać osobistych tokenów dostępu tylko wtedy, gdy włączony jest dwuskładnikowy.
Joshua Dyck
9

Istnieją dwa sposoby obejścia tego problemu:

  1. Dodałem swoją nazwę użytkownika na początku zdalnego adresu URL ( https: // nazwa użytkownika @ gitRepoURL )

    • Nie zawsze najlepsze rozwiązanie; tam, gdzie pracuję, mimo że powoli przechodzimy na korzystanie z GIT, mamy nasze aplikacje na dysku sieciowym, więc jeśli to zrobię, tylko ja będę mógł wprowadzać zmiany, nawet jeśli ktoś inny pracował nad tą funkcją.
  2. Nie mogę uruchomić git config --system --unset credential.helperz GIT Bash, więc musiałem otworzyć Wiersz polecenia administratora i uruchomić go tam (zakłada to, że zainstalowałeś GIT tak, aby mógł działać zarówno z GIT Bash, jak i Wiersz polecenia). Od Basha pojawia się błąd „nie można zablokować pliku konfiguracyjnego”.

Artorias2718
źródło
uzyskać więcej informacji, zobacz: git config -l. Także spróbować powyżej --globalzamiast--system
Mike
9

Cóż, napotykałem ten sam problem przy każdej zmianie hasła logowania.

Poniżej znajduje się polecenie, które muszę uruchomić, aby rozwiązać ten problem: -

git config --global credential.helper wincred

Po uruchomieniu powyższego polecenia ponownie pyta mnie o zaktualizowaną nazwę użytkownika i hasło .

Vikash Pandey
źródło
5

W moim przypadku przeinstalowałem do najnowszej wersji git (obecnie 2.16.2). Nie wiem, czy to było tak, że moja stara wersja git była przestarzała, ale przeczytałem na stronie github, że należy to zrobić, jeśli natkniesz się na błędy klonowania https. Uznałem, że to błąd klonowania https, ponieważ błąd koncentruje się na HTTP Basic, podczas gdy GitLab używa HTTPS. Mogę się mylić w tym procesie myślowym, ale rozwiązanie pomogło w moim przypadku i mam nadzieję, że pomoże to każdemu w przyszłości!

Andreas Forslöw
źródło
4

GO TO C:\Users\<<USER>> AND DELETE THE .gitconfig filenastępnie wypróbuj polecenie, które łączy się z upstream jak git clone, git pull or git push. Zostaniesz poproszony o ponowne wprowadzenie poświadczeń. Zrób to uprzejmie.

Dennis Mutegi
źródło
4

usunąłem poświadczenie gitlab z „Menedżera poświadczeń” w systemie Windows i pomyślnie przesłałem

saiedkia
źródło
4

Przejdź do Panelu sterowania-> Menedżer poświadczeń-> Poświadczenia systemu Windows wybierz poświadczenia github lub gitlab i zmodyfikuj je. To jest dla Windows10

SanjX
źródło
3

zadziałało dla mnie: używam Maca i napisałem ścieżkę w wyszukiwarce:

~ / Biblioteka / Obsługa aplikacji / SourceTree

Usunąłem plik auth, który powinien być podobny

twojaNazwaUż[email protected]

następnie próbował wypchnąć i wyciągnąć kod z drzewa źródłowego i zadziałało.

Możesz także przeczytać następujące odpowiedzi:

https://community.atlassian.com/t5/Sourcetree-questions/How-to-update-HTTP-S-credentials-in-sourcetree/qaq-p/297564

Burcu Kutluay
źródło
2

Jeśli próbujesz zalogować się do Gitlab przy użyciu istniejącego konta Git. Po raz pierwszy musisz zresetować hasło do Gitlab.

  1. Krok: Przejdź do ustawienia, klikając ikonę swojego profilu (menu rozwijane w prawym górnym rogu).
  2. Krok: Przejdź do ustawień
  3. Krok: Kliknij ikonę kłódki lub ikonę glifikonu (tj. Hasło).
  4. Krok: Wprowadź nowe hasło do Gitlab.
Gani
źródło
2

Problemem było dla mnie to, że utworzyłem konto GitLab, łącząc z nim moje konto GitHub. Oznaczało to, że formalnie nie istniało hasło do konta, ponieważ zostało utworzone przez hotlink między GitHub i GitLab. Naprawiłem to, przechodząc do Ustawień GitLab -> Hasło -> i wpisując to samo hasło, które miało moje konto GitHub.

Momchill
źródło
2

Żadne z powyższych rozwiązań nie działało dla mnie i nie mam uprawnień administratora na moim laptopie , ale ostatecznie doprowadziły mnie do dokumentu przechowywania danych uwierzytelniających git tools :

Moja konfiguracja Windows 10 | git wersja 2.18.0.windows.1 | Klonuj przez link HTTPS

To rozwiązanie działa, jeśli używasz programu Wincred jako pomocnika poświadczeń:

> git config --global credential.helper
wincred

Zmiana pomocnika na „pamięć podręczną” powinna załatwić sprawę, ponieważ poprosi Cię o ponowne podanie poświadczeń. Aby ustawić pamięć podręczną, po prostu wpisz:

> git config --global credential.helper cache

Sprawdź, czy aktualizacja jest aktywna:

> git config --global credential.helper
cache

Powinieneś teraz mieć możliwość klonowania / ściągania / pobierania jak poprzednio.

lkostka
źródło
1

Próbowałem wtedy z URL przeglądarki dla repozytorium

git clone $ (browserURL)

poprosił o podanie mojej nazwy użytkownika, a następnie hasła

Wtedy to działało dobrze

Saurabh Verma
źródło
1

Gdy Menedżer poświadczeń systemu Windows prosi o podanie poświadczeń dostępu do GitLab, są to nazwa użytkownika i hasło używane podczas uzyskiwania dostępu do GitLab. EG: użyj swojego adresu e-mail i hasła.

aercolino
źródło
1

Kiedy miałem ten sam problem,

Rozwiązałem go, usuwając plik „passwd”

C:\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree

Po usunięciu Sourcetree poprosi o podanie hasła.

Note:
OS Version : win10 
Sourcetree Version:  3.1
Jean-Philippe Vankemmel
źródło
1

Wierzę, że jestem tu trochę spóźniony. Ale myślę, że pomogłoby to nowym podglądaczom!

Moje błędy: zdalny : HTTP Basic: odmowa dostępu

zdalne : musisz użyć osobistego tokena dostępu z zakresem „read_repository” lub „write_repository” dla Git przez HTTP.

zdalne : Możesz wygenerować jeden na https://gitlab.com/profile/personal_access_tokens

krytyczny : Uwierzytelnienie nie powiodło się dla „ https://gitlab.com/PROFILE_NAME/REPO_NAME.git/

Jestem na Ubuntu, ale to działało dla mnie:

  1. Idź do https://gitlab.com/profile/personal_access_tokens
  2. Utwórz nowy token i zaznacz pole wyboru dla wszystkich.
  3. Skopiuj swój token
  4. Teraz przejdź do terminala i wklej go w ten sposób.

klon git https: // oauth2: [email protected]/PROFILE_NAME/REPO_NAME.git/

Gauraw
źródło
0

Dla użytkowników komputerów Mac:

  1. Przejdź do pęku kluczy i usuń konta gitlab
  2. Przejdź do ścieżki projektu w terminalu i po prostu wpisz git pull
  3. Następnie zostaniesz poproszony o podanie nazwy użytkownika i hasła do gitlab
  4. Wpisz swoją nazwę użytkownika, którą znajdziesz na koncie gitlab w sekcji profilu.
  5. Następnie wprowadź tutaj zaktualizowane hasło.
  6. Proszę bardzo, spróbuj ponownie wprowadzić kod, może to wam pomóc.
Vikash Kumar
źródło