Git Push führt zu "Authentifizierung fehlgeschlagen"


704

Ich habe für eine kleine Weile Github benutzen , und ich habe in Ordnung gewesen mit git add, git commitund git pushso weit ohne Probleme. Plötzlich habe ich einen Fehler, der besagt:

Schwerwiegend: Authentifizierung fehlgeschlagen

Im Terminal habe ich ein Repository geklont, an einer Datei gearbeitet und dann git adddie Datei zum Festschreibungsprotokoll hinzugefügt. Wenn ich das getan habe git commit, hat es einwandfrei funktioniert. Schließlich git pushfragt nach Benutzername und Passwort. Ich habe diese richtig eingegeben und jedes Mal, wenn ich das mache, wird der gleiche Fehler angezeigt.

Hat jemand eine Idee, was die Ursache für dieses Problem ist und wie ich es beheben kann?

Der Inhalt von .git/configsind:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

Wie lautet Ihr Benutzername auf github und was ist der Inhalt von .git / config?
Mnagel

füge es der Frage hinzu, Kommentare kommen mit
Langtext

Ja, tut mir leid, ich habe den Kommentar aus Gewohnheit gestartet und ihn dann geändert.
Zkirkland

Ihre URL sieht nicht richtig aus. Ich denke, es sollte damit beginnen https://, nicht http://.
John Szakmeister

Geändert zu https ... hat nicht funktioniert.
Zkirkland

Antworten:


1202

Wenn Sie die Zwei-Faktor-Authentifizierung in Ihrem Github-Konto aktiviert haben, können Sie nicht über HTTPS mit Ihrem Kontokennwort pushen. Stattdessen müssen Sie ein persönliches Zugriffstoken generieren. Dies kann in den Anwendungseinstellungen Ihres Github-Kontos erfolgen. Wenn Sie dieses Token als Kennwort verwenden, können Sie über HTTPS auf Ihr Remote-Repository übertragen. Verwenden Sie wie gewohnt Ihren Benutzernamen.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Möglicherweise müssen Sie auch den Ursprung für Ihr Repository aktualisieren, wenn https:

git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

5
Tatsächlich. +1. Ich präsentiere PAT hier stackoverflow.com/a/19223896/6309 und erläutere den Prozess dort: stackoverflow.com/a/18607931/6309
VonC

3
Ich musste meine rsa-Schlüssel neu generieren, damit normale Git-Operationen funktionieren, nachdem ich 2FA aktiviert hatte.
R11G

5
Vielen Dank! Hatte gerade diesen Fehler und das half, nur um darauf hinzuweisen. Sobald Sie Ihr persönliches Zugriffstoken erstellt haben, kopieren Sie dieses und werden beim Drücken des Repos nach Ihrem Benutzernamen und Passwort gefragt. Fügen Sie das Zugriffstoken in das Passwort ein
pourmesomecode

87
Sie können auch git remote add origin https://username:access-token@github.com/username/repo.gitIhr persönliches Zugriffstoken speichern.
Mailmindlin

2
Für mich musste ich lediglich die SSH-Authentifizierung von meinem lokalen Computer in meinem GitHub-Konto aktivieren und dann zur Remote-Adresse von ssh git wechseln. help.github.com/articles/changing-a-remote-s-url
user5359531

603

Führen Sie die folgenden Schritte aus, um die gespeicherten Anmeldeinformationen zu bearbeiten oder zu entfernen:

  1. Klicken Sie auf Start
  2. Typ: Credential Manager (Unter Windows 10 befindet sich dies unter "Start-> Einstellungen". Suchen Sie dann nach "Credential Manager".)
  3. Siehe die Windows Credentials Manager Verknüpfung an und doppelklicken Sie darauf, um die Anwendung zu öffnen.
  4. Sobald die App geöffnet ist, klicken Sie auf Windows Credentials Registerkarte.
  5. Suchen Sie die Anmeldeinformationen, die Sie entfernen / aktualisieren möchten. Sie beginnen mit "git:" und beginnen möglicherweise mit "ada:".
  6. Klicken Sie auf den Eintrag für die Anmeldeinformationen. Daraufhin wird eine Detailansicht des Eintrags geöffnet.
  7. Klicken Sie nach Bedarf auf Bearbeiten oder Entfernen und bestätigen Sie.
  8. Waschen, spülen, nach Bedarf wiederholen.

Geben Sie hier die Bildbeschreibung ein


2
In meinem Fall befindet es sich nicht in "Windows-Anmeldeinformationen", sondern in "Allgemeine Anmeldeinformationen". Entfernen Sie den Berechtigungsnachweis.
Toni Gamez

8
Sie können das obige Fenster öffnen durch (Windows + R) -> "Steuerelement / Name Microsoft.CredentialManager"
Sufiyan Ansari

Die Anmeldeinformationen können vorhanden sein, jedoch ohne "git:" davor. Das wird nicht funktionieren. Es muss mit 'git:' beginnen
Marques

1
Mein Arbeitgeber hat die Windows-Authentifizierung auf Git Hub eingestellt. Jedes Mal, wenn ich meine Windows-Anmeldeinformationen änderte, musste ich sie für die Quellcodeverwaltung aktualisieren. Ihre Antwort hat funktioniert.
Shary.sharath

1
Fantastische Antwort. Wir unterhalten ein internes BitBucket-Repository, in dem jeder unserer Kontoanmeldeinformationen bei unserer Organisation authentifiziert wird. Vor kurzem waren alle meine Repositorys nicht mehr verfügbar, um Codeänderungen zu übertragen. Obwohl ich in der Lage war, Anmeldeinformationen von Fall zu Fall zu ändern, wollte ich dies wirklich nicht für jedes Projekt tun. Der Ansatz von @ Pradeep ermöglichte es mir, die zugrunde liegende Ursache zu lösen, die mehr als nur eine Passwortänderung war. Unsere Organisation hat kürzlich den Namen der internen Domäne geändert. Durch die zentrale Bearbeitung der Anmeldeinformationen konnte ich alle meine Projekte reparieren.
Michael M

79

Dies hat bei mir funktioniert und erinnert sich auch an meine Anmeldeinformationen:

  1. Führen Sie gitbash aus

  2. Zeigen Sie auf das Repo-Verzeichnis

  3. Lauf git config --global credential.helper wincred


18
Ich habe eine Weile gebraucht, um herauszufinden, was das bewirkt - es verwendet den Anmeldeinformations-Manager in der Windows-Systemsteuerung. So beenden Sie die Verwendung: git config –global credential.helper unset Quelle und weitere Details in dieser Antwort .
Ian W

7
@IanW Meinst du git config --global --unset credential.helper? Das hat bei mir in Git Bash funktioniert.
Ellen Spertus

1
Seien Sie vorsichtig mit diesem Befehl, er ersetzt den tatsächlichen Pfad zu Ihrem Anmeldeinformations-Helfer durch einfach "wincred", was anscheinend nicht das ist, was Sie brauchen.
Amarax

2
Ich habe diesen Befehl ausgeführt, um herauszufinden, dass es nicht das ist, was ich wollte. Der richtige Weg zum Deaktivieren ist git config --global --unset credential.helper. Letztendlich habe ich meine korrekte Einstellung mit wiederhergestellt git config credential.helper store.
Omar

Das hilft mir! Vielen Dank!
Jefsama

70

Möglicherweise haben Sie kürzlich das Passwort für Ihr Git-Konto geändert. Sie können die Option git pushmit ausprobieren-u

git push -u origin branch_name_that_you_want_to_push

Nachdem Sie den obigen Befehl ausgeführt haben, werden Sie nach dem Passwort gefragt. Geben Sie Ihr aktualisiertes Passwort ein

Hoffe es kann dir helfen


Das funktioniert, was meine Umgebung httpsnur sein muss
BMW

1
Sicher viel einfacher als die meisten Antworten. (Und das Ändern von Passwörtern sollte der häufigste Grund für einen Authentifizierungsfehler sein ;-))
Michel

Wenn Sie dies auf einem vorhandenen Klon erleben - dann machen Sie einfach einengit push -u
Ajay Chebbi

64

Zunächst können Sie sicherstellen, dass Sie die richtige URL verwenden:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Wenn es zuvor funktioniert hat und nicht nach Ihrem Benutzernamen gefragt wurde, muss dies daran liegen, dass Sie Ihre Anmeldeinformationen (Login / Passwort) in einer $HOME/.netrcDatei gespeichert haben, wie hier erläutert . Sie können diese Einstellungen überprüfen und sicherstellen, dass sich Ihr Proxy, falls vorhanden, nicht geändert hat.

Wenn das immer noch nicht funktioniert, können Sie zu einer SSH-URL wechseln:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

Dies bedeutet jedoch, dass Sie Ihren öffentlichen ssh-Schlüssel in Ihren Kontoeinstellungen veröffentlicht haben .


9
Der Wechsel von HTTPS zu SSH löste das Problem für mich.
Leymannx

3
Ich hatte die 2-Faktor-Authentifizierung für mein GH-Konto aktiviert und durch Umschalten der Remote-URL von HTTPS auf SSH wurde das Problem "Authentifizierung fehlgeschlagen" für mich behoben. Macht Sinn. Vielen Dank!
Walter Roman

55

Es passiert, wenn Sie Ihr Login oder Passwort des Git-Dienstkontos (Git) ändern. Sie müssen es auch im Windows Credentials Manager ändern . Geben Sie "Credential Manager" in das Windows-Suchmenü ein und öffnen Sie es.

Windows Credentials Manager-> Windows Credential und unter Allgemeine Anmeldeinformationen bearbeiten Sie Ihr Git-Passwort.


4
Dies hat mich bei der Arbeit mit GitLab gerettet (als so ziemlich nichts anderes geholfen hat). Vielen Dank!
John Humphreys - w00te

2
Ich hatte noch nie von diesem Windows-Manager für Anmeldeinformationen gehört ... Danke!
Sam

1
Ich habe falsche Anmeldeinformationen angegeben, als Git mich beim Übertragen neuer Dateien in das Remote-Repository zur Eingabe der Benutzer-ID und des Kennworts aufforderte. Als ich den Push-Befehl erneut ausführte, forderte mich git nicht zur Eingabe von Anmeldeinformationen auf, sondern warf nur einen fehlgeschlagenen Authentifizierungsfehler aus. Nachdem ich diese Antwort gelesen hatte, stellte ich fest, dass git Anmeldeinformationen verwendet, die im Anmeldeinformations-Manager gespeichert sind, und dies sollte der Grund sein, warum git nicht jedes Mal nach einem Kennwort fragt, wenn wir in das Remote-Repository pushen. Ich habe das Git-Passwort im Anmeldeinformations-Manager gelöscht, woraufhin Git mich erneut zur Eingabe der Benutzer-ID und des Passworts aufforderte.
Jchenna

41

Grundsätzlich war mein Berechtigungsnachweis abgelaufen und ich hatte das oben genannte Problem.

Folgende 2 Befehle haben mir geholfen:

git config --global --unset credential.helper

git config credential.helper store

Beim nächsten Push-Versuch werden Sie nach Anmeldeinformationen gefragt.

Befolgen Sie die nachstehenden Richtlinien, um weitere Informationen zur gesicherten und ungesicherten Speicherung von Benutzernamen und Kennwörtern zu erhalten:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache


Dies funktionierte für mich, nachdem ich mein Passwort auf Github geändert und meine Anmeldeinformationen lokal nicht geändert hatte.
Scott

33

Wenn Sie bei der Eingabe des richtigen Kennworts und Benutzernamens ein Problem mit dem Authentifizierungsfehler festgestellt haben, liegt ein Git-Problem vor. Um dieses Problem bei der Installation des Git auf Ihrem Computer zu beheben, deaktivieren Sie den Aktivierungs-Git-Anmeldeinformations-ManagerGeben Sie hier die Bildbeschreibung ein


1
Dies hat mein Problem
behoben

reparierte meine auch. Tausend Dank!
Brian Edwards

Ich finde diese Art von Lösung nicht. Ich habe den Git
Hoque MD Zahidul


1
Ich musste auch "Die native Windows Secure Channel-Bibliothek verwenden" aktivieren. Es ist nicht standardmäßig aktiviert.
Doptrois

25

Ich denke, dass GitHub aus irgendeinem Grund erwartet, dass die URL KEINE Subdomain www hat. Wenn ich (zum Beispiel) benutze

git remote set-url origin https://www.github.com/name/repo.git

es gibt die folgenden Nachrichten:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

Allerdings, wenn ich benutze

git remote set-url origin https://github.com/name/repo.git

es funktioniert einwandfrei. Das macht für mich nicht allzu viel Sinn ... aber ich denke, denken Sie daran, www nicht in die Remote-URL für GitHub-Repositories aufzunehmen.

Beachten Sie auch, dass die auf der GitHub-Repository-Webseite angegebenen Klon-URLs nicht das WWW enthalten.


4
Nicht "www" auf "github.com" zu setzen, funktioniert. Da dies wichtig ist, sollte Github seine Site reparieren, damit Sie nicht mit "www" klonen können.
John Nagle

1
Vielen Dank :) In meiner URL fehlte die .git, und dieser Kommentar brachte mich dazu, sie mir anzusehen und herauszufinden.

19

Hallo, ich habe den gleichen Fehler erhalten. Ich habe alle auf dieser Seite genannten Lösungen ausprobiert, aber nicht funktioniert. Schließlich fand ich die Lösung, also dachte ich daran, sie zu veröffentlichen. Bitte korrigieren Sie mich, wenn ich irgendwo falsch liege. Diese Art von Fehler tritt auf, wenn sich Ihr Systemkennwort manchmal kürzlich geändert hat. Es wird versucht, anhand des alten Passworts zu validieren. Befolgen Sie also diese Schritte:

  1. Gehen Sie zur Systemsteuerung
  2. Klicken Sie auf Benutzerkonten
  3. Unter Anmeldeinformations-Manager
  4. Gehen Sie zu Windows-Anmeldeinformationen verwalten
  5. Gehen Sie zu Allgemeine Anmeldeinformationen
  6. Erweitern Sie die Registerkarte Git-Server
  7. Klicken Sie auf Aus Tresor entfernen

    • Sie können auch auf Bearbeiten klicken und Ihr hier gespeichertes Passwort direkt ändern.

10

Ich bin auf "$ git fetch fatal: Authentifizierung für 'http: // .... fehlgeschlagen" gestoßen, nachdem mein Windows-Passwort abgelaufen ist und geändert wurde. Mehrere Abrufe, ein Neustart und sogar eine Neuinstallation von Git mit dem Windows Credential Manager haben nicht geholfen.

Überraschenderweise die richtige Antwort irgendwo hier in Kommentaren, aber nicht in Antworten (und einige von ihnen sind wirklich komisch!). Gehen Sie zu Systemsteuerung -> Anmeldeinformations-Manager / Windows-Anmeldeinformationen und aktualisieren Sie Ihr Kennwort für git: http: // yourrepoaddress


9

Ich bin mir nicht sicher, was ich getan habe, um diesen Fehler zu bekommen, aber ich mache:

git remote set-url origin https://...

hat bei mir nicht funktioniert. Jedoch:

git remote set-url origin git@bitbucket.org:user/repo

irgendwie funktioniert.


3
Sie haben von https zu ssh gewechselt
James Wierzba

Das funktioniert auch bei mir. Dies ist keine Zauberei, da ich die Konfiguration für den SSH-Zugriff (mit einem konfigurierten öffentlichen Schlüssel) gespeichert habe, die nicht für den https-Zugriff (Benutzer / Pass + MFA) abgerufen wird.
Daniel Dubovski

8

Ich hatte das gleiche Problem. Ich habe die URL folgendermaßen eingestellt:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Ich habe auch diesen Eintrag aus der Konfigurationsdatei entfernt : askpass = /bin/echo. Dann fragte mich "git push" nach Benutzername und Passwort und diesmal funktionierte es.


Ich musste diesen Eintrag nicht aus der Konfigurationsdatei entfernen : askpass = /bin/echo.
Darius Miliauskas

5

In meinem Fall habe ich kürzlich mein Windows-Kennwort geändert und den SSH-Schlüssel für git-bezogene Aktionen (Ziehen, Drücken, Abrufen usw.) konfiguriert. Nachdem der Fehler "Schwerwiegend: Authentifizierung fehlgeschlagen" aufgetreten ist, habe ich mein Kennwort in den Fenstern aktualisiert Der Anmeldeinformations-Manager (Systemsteuerung \ Benutzerkonten \ Anmeldeinformations-Manager) für alle Elemente, die mit git beginnen: ... und erneut versucht, hat diesmal funktioniert!



3

Wenn Sie die Zwei-Faktor-Authentifizierung für Ihr Github-Konto aktiviert haben, melden Sie sich bei Ihrem GitHub-Konto an und gehen Sie zu: https://github.com/settings/tokens/new , um ein neues Zugriffstoken zu generieren. Kopieren Sie dieses Token und fügen Sie es als ein ein Passwort für die Authentifizierung im Terminal.


2

Wenn Sie unter Windows arbeiten und versuchen, auf einen Windows-Server zu pushen, auf dem Domänenbenutzer als Repository-Benutzer (TFS) arbeiten, versuchen Sie, http:\\tfsmit dem IE die TFS-URL (dh ) aufzurufen. Geben Sie die Anmeldeinformationen Ihres Domain-Kontos ein und lassen Sie die Seite erscheinen.

VORSICHT verwenden nur INTERNET EXPLORER! Andere Browser ändern Ihre Systemanmeldeinformationen nicht.

Gehen Sie nun zu git bash und ändern Sie Ihren Remote-Benutzer für das Repository wie folgt:

git config user.name "domainName\userName"

Und fertig, jetzt können Sie pushen!


1

Ich habe vergessen, dass ich das Passwort auf Github.com geändert habe und mein Schlüsselbund für die Shell-Authentifizierung nie auf dieses neue Passwort aktualisiert wurde. Das Löschen aller Git-Dateien aus meinem Schlüsselbund und das erneute Ausführen der Git-Anforderung haben zur Behebung des Problems beigetragen und mich erneut zur Eingabe des neuen Kennworts aufgefordert.


1

Um mich hier einzuschalten, wurde das Problem für mich behoben. Ich habe einfach die anfängliche Eingabeaufforderung abgebrochen, die SSH mit meinem Bitbucket-Konto geöffnet, dort das Passwort eingegeben und alles hat wie erwartet funktioniert.


1

Ich hatte das gleiche Problem unter Windows. Die meiste Zeit bin ich normalerweise mit dem Problem konfrontiert, weil ich mehrere Git-Konten verwende. Wenn Sie unter Windows arbeiten, öffnen Sie das Terminal als Administrator und versuchen Sie erneut, die Befehle auszuführen. Stellen Sie sicher, dass Sie über die Administratorzugriffsrechte verfügen.


1

Ich habe Bitbucket hinzugefügt, das mit Git verknüpft ist, und musste die gespeicherten Schlüssel entfernen, da dies den schwerwiegenden Fehler verursachte.

Zum Auflösen habe ich die Eingabeaufforderung geöffnet und ausgeführt

 rundll32.exe keymgr.dll, KRShowKeyMgr

Ich entfernte den Schlüssel, der für die Anmeldung verantwortlich war, und als ich das nächste Mal die Dateien in das Repo schob, wurde ich zur Eingabe von Anmeldeinformationen aufgefordert und gab die richtigen ein, was zu einem erfolgreichen Push führte.


0

Ich bin auch auf den Fehler gestoßen (deshalb bin ich hier gelandet), aber keiner der Vorschläge hat für mich funktioniert. Dies war mein erstes Mal, dass ich versuche, lokales Git für Azure bereitzustellen. Als ich diesen Fehler bekam, setzte ich meine Anmeldeinformationen nach einigen Versuchen zurück (indem ich auf den Link in Azure klickte). Das Problem ist, dass zu diesem Zeitpunkt angegeben wird, dass mein Benutzername bereits vergeben ist, sodass ich auch meinen Benutzernamen in einen anderen geändert habe. Am Ende habe ich den .git-Ordner auf meinem lokalen Laufwerk manuell gelöscht und problemlos erneut bereitgestellt.


0

Problemstellung: "Git-Authentifizierung fehlgeschlagen". Ich benutze Bitbucket.

Lösung: Ich habe den Benutzer einfach aus der Zugriffsverwaltung von Bitbucket gelöscht und dann denselben Benutzer hinzugefügt. Die .gitconfig-Datei ist einfach

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

0

mit korrekten Anmeldeinformationen, wenn das Problem auftritt

Wenn Sie Android Studio 2.1 Beta verwenden, dann ist sein Fehler, Upgrade auf Beta 2 (3 MB Update-Datei), dies hat bei mir funktioniert


0

Stellen Sie sicher, dass Sie die WRITE-Berechtigung zum Pushen haben.

read ***write*** admin 

0

Stellen Sie sicher, dass Ihr SSH-Schlüssel zu Ihrer aktuellen SSH-Sitzung hinzugefügt wurde.

  1. Kopieren Sie die Ausgabe von cat ~/.ssh/id_rsa.pubin Ihre GitHub-Einstellungen unter SSH- und GPG-Tasten.

  2. Aktualisieren Sie Ihre aktuelle SSH-Sitzung mit ssh-add ~/.ssh/id_rsa.pub

Ich verwende Windows Powershell mit installiertem Openssh.


0

Wenn Sie in Android Studio Canary Build 3.1+ das Android Studio Git-Tool verwenden, können Sie Folgendes verwenden:

  • Klicken Sie auf Android Studio
  • Klicken Sie auf Einstellungen ...
  • GO in VersionControl -> Github
  • Ändern Sie hier den Authentifizierungstyp in Kennwort
  • Für diesen Schritt müssen Sie Login und Passwort eingeben. Geben Sie Ihren Github-Benutzernamen als Login und Ihr Github-Passwort als Passwort ein.
  • Klicken Sie auf die Schaltfläche Test.

Wenn die Verbindung erfolgreich ist, sind Sie fertig und können den Android Studio Github UI Client verwenden.


0

Wenn Sie ssh verwenden und mit https geklont haben, funktioniert dies nicht. Mit ssh klonen und dann drücken und ziehen sollte wie erwartet funktionieren!


0

Falls dies tangential hilfreich ist, da diese Frage jetzt ein Top-Hit für http-Authentifizierungsprobleme mit git ist: Windows Credential Manager hat mein Kennwort korrekt gespeichert, und da ich Git LFS verwendet habe, habe ich anstelle der üblichen ssh: / eine http-URL konfiguriert /. .

Mein Problem war, dass meine Firmenkennwortrichtlinie eine Änderung des Kontokennworts erzwang, aber ich habe meine gespeicherten Anmeldeinformationen nie aktualisiert (da ich immer einen SSH-Schlüssel verwende).

Das einfache Aktualisieren des Passworts direkt in der Wincred-Benutzeroberfläche hat funktioniert: Suchen Sie einfach nach einem git:https://<your-url>Eintrag.


0

Dies geschah uns, nachdem wir "Two Factor Authentication" erzwungen hatten, bevor wir uns von Gitlab aus anmeldeten. Wir mussten den Text in id_rsa.pub in Gitlab einfügen und dann das Repository mithilfe des Terminals wieder in VS-Code einführen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.