Błąd krytyczny Git: uwierzytelnianie nie powiodło się


104

Próbuję użyć narzędzia git, aby przekazać moje repozytorium do projektu usług zespołu Visual Studio, ale pojawia się błąd:

fatal: Authentication failed for (url of team project

Używam cmds:

git remote add origin
     https://XXXXXXX.visualstudio.com/DefaultCollection/_git/project

git push -u origin -–all

Masz jakiś pomysł, jak to naprawić?

Dzięki!


1
Jak się uwierzytelniasz? Osobisty token dostępu? Alternatywne dane dostępu?
Daniel Mann,

Odpowiedzi:


198

Ostatnio miałem ten sam problem (Visual Studio 2017 i Windows 10) i rozwiązałem go następującą metodą:

Panel sterowania -> Menedżer poświadczeń -> Zarządzaj poświadczeniami systemu Windows -> Wybierz wpis repozytorium git i Edytuj użytkownika i hasło.

Gotowe.


1
Użyłem tej metody, gdy mój osobisty token dostępu wygasł. Przejdź do <<URL>> / _ usersSettings / tokens, aby utworzyć nowy, a następnie ustaw je jako hasło w module Credential Manager.
Nawet Mien

34

Jeśli chcesz używać interfejsu wiersza polecenia GIT i nie wchodzić w interakcje z kompilacją w opakowaniach GIT w programie Visual Studio, musisz włączyć alternatywne poświadczenia uwierzytelniania

W jaki sposób?

Open your account (VS Online account) 
-> click on your name on the top right 
-> My Profile
-> Credentials.

i skonfiguruj.


wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj


4
Bezpieczeństwo to teraz osobna pozycja w menu. Kliknięcie profilu powoduje przejście do zupełnie innej strony.
Lukos

2
może się różnić w zależności od wersji. dlatego dodałem zrzut ekranu
CodeWizard

1
Nie musiałem tego robić. Wydaje się, że używanie PAT dla Git Bash działa dobrze.
Josh Gust

1
Użyj PAT zamiast alternatywnych danych logowania.
Edward Thomson,

1
Włączanie alternatywnych poświadczeń nie jest zalecane: poświadczenia domeny przesyłane są w postaci zwykłego tekstu i mogą trafiać do dzienników usług IIS poziomu aplikacji
Giulio Vian

29

Zmierzyłem się z tym samym problemem. Okno wyjścia błędu wygląda następująco: uwierzytelnianie nie powiodło się Obraz

Wykonanie czynności rozwiązało problem:

  1. Wybierz Panel sterowania -> Menedżer poświadczeń -> Poświadczenia systemu Windows
  2. Poniżej ogólnych poświadczeń wybierz wpis hasła git & update.

    okno rozwiązania

  3. Hasło powinno być takie samo jak hasło logowania do systemu Windows (system).


17

Najlepszą opcją na dziś jest instalacja https://github.com/Microsoft/Git-Credential-Manager-for-Windows, który obsługuje VSO, GitHub i jest ulepszany co miesiąc.


2
@dotnetdev Zaakceptuj tę odpowiedź, ponieważ jest to zalecany sposób rozwiązania problemu.
Deilan

1
Jest to również dostępne dla komputerów Mac i Linux pod adresem github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux - działało idealnie dla mnie bez konieczności dodawania mniej bezpiecznych „alternatywnych danych uwierzytelniających”.
Breeno

1
Jest to rzeczywiście „de facto” rozwiązanie dostarczone przez firmę Microsoft. Inne rozwiązania, które rzeczywiście tutaj działają, należy uznać za poprawki.
Stephane

11

W przypadku VSTS adres URL to, kiedy kopiujesz adres URL git clone z vsts, zawsze dostajesz

https: // nazwa orgn @ dev.azure.com / org / project / _git / repo

Zastąp orgname @ swoją alternatywną nazwą użytkownika , którą utworzyłbyś w VSTS -> profil -> Bezpieczeństwo.

końcowy URL git -

https: // alternatywna nazwa użytkownika @ dev.azure.com / org / project / _git / repo


7

Miałem ten sam problem, próbowałem zaktualizować hasło za pomocą menedżera poświadczeń systemu Windows, ale to nadal nie rozwiązało problemu

Panel sterowania -> Menedżer poświadczeń -> Zarządzaj poświadczeniami systemu Windows -> Wybierz wpis repozytorium git i Edytuj użytkownika i hasło.

Następnie usunąłem cały wpis związany z git w menedżerze poświadczeń, a następnie spróbowałem użyć Git za pomocą programu Visual Studio, tym razem monit o nowe poświadczenia


5

Usuń plik „.git / config” i spróbuj ponownie.Uwaga, może to również zresetować niektóre ustawienia git!

Wielokrotnie próbowałem użyć alternatywnych poświadczeń i osobistego tokenu dostępu z odpowiednimi danymi i ciągle wyświetlały mi się komunikaty „fatalne: uwierzytelnienie nie powiodło się”.

Wreszcie znalazłem plik o nazwie „.git / config” znajdujący się w katalogu głównym mojego repozytorium. Usunąłem ten plik i ponownie wpisałem moje dane uwierzytelniające, zadziałało.


3

Nagle zacząłem otrzymywać ten błąd podczas próby przesłania zmian z VS2017 do repozytorium VSTS Git. Ta funkcja zadziałała dzień wcześniej.

Sprawdziłem mój plik git.log i zobaczyłem inny wyjątek: -

19: 43: 57.116665 ... zureAuthority.cs: 184 trace: Serwer [ValidateCredentials] zwrócił: „Nie można połączyć się z serwerem zdalnym.

Pobrałem najnowsze źródło Git CredentialManager z repozytorium Gits Credential Manager i zdebugowałem je.

Po uwierzytelnieniu wystąpił następujący wyjątek: -

Nie można było nawiązać połączenia, ponieważ maszyna docelowa aktywnie odmówiła mu 127.0.0.1:8888

Potem zdałem sobie sprawę, że niedawno skonfigurowałem Fiddlera, aby działał jako proxy dla wszystkich usług, zgodnie z artykułem przechwytywanie ruchu z .net-services-with-fiddler

Po uruchomieniu programu Fiddler udało mi się pomyślnie połączyć.


3

Moje rozwiązanie było trochę inne i szybsze :)

  1. Przejdź do poświadczeń systemu Windows (Start-> Poświadczenia systemu Windows) i usuń poświadczenia swojego repozytorium (zaczynają się od git: xxx)
  2. Przejdź do VSCode i napisz w Terminalu:

    config credential.helper wincred

  3. Przejdź do programu Visual Studio (bez VSCode) i wykonaj git pull. Pojawi się wyskakujące okienko z pytaniem o poświadczenia. Umieść swoje dane logowania do repozytorium

  4. Idź do VSCode i wykonaj git pull. Poświadczenia zostały automatycznie pobrane ze sklepu wincred

Poświadczenia są tworzone automatycznie i przechowywane w wincredentials, więc następnym razem nie możesz zostać poproszony o podanie poświadczeń. (jeśli korzystasz z repozytorium git hostowanego przez DevOps, otrzymasz również osobisty token dostępu z witryny visualstudio.com).


Start-> Poświadczenia systemu Windows działają jak marzenie! Dzięki!
Highriser

2

Dla użytkowników Linuksa, którzy nie mogą używać Microsoft Credential Manager. To jedyne rozwiązanie, które znalazłem poza użyciem ssh. Musisz wygenerować poświadczenia w widoku repozytorium (patrz zdjęcia poniżej) uzyskać poświadczenia git

A wynik jest taki: pobierz wynik poświadczeń Git

Skopiuj hasło !. Azure Devops nie przechowuje tego i nie będzie można go zobaczyć ponownie!

Uwaga: od 2020 r. Alternatywne poświadczenia zostały wyłączone, sprawdź blog Microsoft


1

Wypróbowałem wiele opcji, ale ta, która zadziałała, to:

  1. Pobierz Menedżera haseł Git z sekcji Wersje

  2. Spróbuj zrobić coś prostego, git fetchco automatycznie spowoduje wyświetlenie okna (na przykład alternatywne do domyślnego okna) i poproszenie o wprowadzenie nazwy użytkownika i hasła, ale w bardziej elegancki sposób niż standardowy.

Po poprawnym wprowadzeniu poświadczeń zadziałało, chociaż wcześniej otrzymywałem błąd.

PS Jeśli otrzymujesz błędy typu „Wrong Credentials”, zawsze sprawdź, czy nazwa użytkownika repozytorium i hasło są poprawne. Jeśli się wahasz, po prostu zresetuj hasło i spróbuj użyć tego samego w oknie Menedżera haseł Git.


1

Miałem ten problem i instrukcje od technika z Microsoft naprawiły go dla mnie:

  • Zamknij wszystkie wystąpienia programu Visual Studio.
  • Otwórz Menedżera zadań i sprawdź, czy są uruchomione jakiekolwiek usługi TFS. Wybierz każdy z nich i kliknij Zakończ drzewo procesów.
  • Przejdź do folderu poniżej i usuń całą zawartość i foldery w% LocalAppData% \ Microsoft \ Team Foundation {wersja} \ Cache
  • Przejdź do Panelu sterowania -> Konta użytkowników -> Zarządzaj swoimi poświadczeniami -> Poświadczenia systemu Windows, wybierz adres URL VSTS, aby go usunąć
  • Następnie przejdź do „C: \ Users \ NAZWA UŻYTKOWNIKA \ AppData \ Local \ GitCredentialManager \ tenant.cache” i usuń go
  • Przejdź również do „C: \ Users \ NAZWA UŻYTKOWNIKA \ AppData \ Local.IdentityService” i usuń go

0

Wszystko, czego potrzebowałem, to prawidłowe poświadczenia. podczas wdrażania do aplikacji internetowej musiałem udać się do Centrum wdrażania, poświadczenia wdrażania. Następnie użyj poświadczeń aplikacji lub utwórz poświadczenia użytkownika. Następnie usuń buforowane poświadczenia na komputerze lokalnym (Windows: Panel sterowania \ Konta użytkowników \ ​​Menedżer poświadczeń). uruchom ponownie polecenie „git push webapp master: master”, wprowadź dowolne z poświadczeń wdrożenia. To zadziałało dla mnie.


0

Jeśli jesteś na czymś innym niż Windows, a Twój szef zmusza Cię do korzystania z Azure DevOps, a nie chcesz używać SSH, a chcesz używać zwykłego starego sposobu, wykonaj następujące czynności.

Musisz włączyć `` Alternatywne dane uwierzytelniające '' (wiem, że to denerwujące) lub musisz utworzyć token dostępu. Utworzenie tokena dostępu w tym przypadku przypomina bardziej tymczasowe hasło losowe. Jeśli używasz narzędzi systemu Windows, jest to zrobione za Ciebie.

W każdym razie przejdź do Securityw menu kontekstowym profilu w prawym górnym rogu.

Ustawienia bezpieczeństwa

Następnie, jeśli twój szef / menedżer / koleś, który ma uprawnienia administratora, faworyzuje cię, `` Alternatywne poświadczenia '' są włączone. W przeciwnym razie zaakceptuj swój los i wygeneruj „Osobisty token dostępu”.

Ustawienia bezpieczeństwa


0

Konfiguracja trwa od 2 do 5 minut!

  • Utwórz klucze SSH (~ / .ssh /)

ssh-keygen -C "jamal@fabrikam.com"

  • Dodaj klucz publiczny do Azure DevOps Services / TFS
  • Sklonuj repozytorium Git za pomocą SSH

Źródło


0

Po zmaga się z uwierzytelniania git i lazurowe devops serwera i stara inne odpowiedzi to wskazówka tutaj pracował dla mnie.

Korzystasz z programu Visual Studio? Team Explorer obsługuje uwierzytelnianie za pomocą usługi Azure Repos.

Po połączeniu się z repozytorium za pomocą Team Explorer mogłem używać wiersza poleceń do wykonywania poleceń git.


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.