GitHub: Ungültiger Benutzername oder Passwort


402

Ich habe ein Projekt auf GitHub gehostet. Ich versage, wenn ich versuche, meine Änderungen auf den Master zu übertragen. Ich erhalte immer die folgende Fehlermeldung

Password for 'https://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

Es scheint jedoch in Ordnung zu sein, meinen SSH-Schlüssel auf Github zu setzen. In der Tat, wenn ich ein mache, ssh -T git@github.combekomme ich

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

Was darauf hindeutet, dass von dieser Seite aus alles in Ordnung ist (eurydyce ist mein Github-Benutzername). Ich habe die Anweisungen auf Github und die Empfehlungen vieler Stack-Diskussionen genau befolgt, aber auf keinen Fall. Würdest du eine Vorstellung davon haben, was ich falsch gemacht habe?


Ich bin mir nicht sicher, ob ich eine Antwort posten soll oder nicht (hohe Wahrscheinlichkeit, dass ich abstimme), da ich diese Fehlermeldung behoben habe, indem ich das Passwort in den Github-Einstellungen geändert habe, nachdem ich viele Versuche mit dem "richtigen" Passwort (Check by Inspect Element) versucht hatte.
Obst

Antworten:


274

https: //git@github.com/eurydyce/MDANSE.git ist keine ssh-URL, sondern eine https-URL (für die anstelle von ' git' der Name Ihres GitHub-Kontos erforderlich wäre ).

Versuchen Sie es ssh://git@github.com:eurydyce/MDANSE.gitoder einfachgit@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

Der OP Pellegrini Eric fügt hinzu:

Das habe ich in meiner ~/.gitconfigDatei gemacht, die derzeit die folgenden Einträge enthält[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

Dies sollte nicht in Ihrer globalen Konfiguration sein (die in ~/).
Sie können git config -lIhr Repo einchecken : Diese URL sollte in der lokalen Konfiguration deklariert werden : <yourrepo>/.git/config.

Stellen Sie also sicher, dass Sie sich im Repo-Pfad befinden, wenn Sie den git remote set-urlBefehl ausführen .


Wie in bemerkte Oliver ‚s Antwort , ein HTTPS - URL nicht Benutzername / Passwort verwenden , wenn die Zwei-Faktor - Authentifizierung (2FA) aktiviert wird.

In diesem Fall sollte das Kennwort ein PAT (Personal Access Token) sein, wie unter " Verwenden eines Tokens in der Befehlszeile " beschrieben.

Dies gilt nur für HTTPS-URLs. SSH ist von dieser Einschränkung nicht betroffen.


oups! Sie haben Recht, diese Änderungen in meiner lokalen Konfiguration haben alles zum Laufen gebracht. Vielen Dank.
Eurydike

80
Verstehe diese Antwort überhaupt nicht
Cloud

1
@Clo sicher, welcher Teil ist unklar, wie kann ich diese Antwort verbessern?
VonC

Ich hatte einen https-Klon-Link, der nicht funktionierte. Aber ich habe durch git @ url ersetzt und es fing an zu funktionieren. Was könnte der Grund dafür sein? Ich habe auch einen Github-Eintrag von meinem Mac-Schlüsselbund entfernt. Könnte das zusammenhängen? Ich habe es jedoch über ssh verwendet, indem ich Schlüssel konfiguriert habe. Hinweise sind dabei hilfreich.
cg

1
@byronaltice Wenn dies SSH ist, bedeutet dies, dass Sie eine ~/.ssh/configoder %USERPROFILE%\.ssh\config-Datei mit einem github.comEintrag darin haben.
VonC

1011

Zwei - Faktor - Authentifizierung (2FA) Nach der Aktivierung können Sie so etwas wie dies sehen , wenn sie versuchen , Verwendung git clone, git fetch, git pulloder git push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

Warum passiert das?

Aus der GitHub-Hilfedokumentation :

Nachdem 2FA aktiviert wurde, müssen Sie anstelle eines 2FA-Codes und Ihres GitHub-Passworts ein persönliches Zugriffstoken eingeben.

...

Zum Beispiel , wenn Sie ein Repository mit Git auf der Kommandozeile Zugriff über Befehle wie git clone, git fetch, git pulloder git pushmit HTTPS - URLs, müssen Sie Ihren GitHub Benutzername und Ihr persönliches Zugriffstoken zur Verfügung stellen , wenn nach einem Benutzername und Passwort gefragt. Die Eingabeaufforderung gibt nicht an, dass Sie Ihr persönliches Zugriffstoken eingeben sollen, wenn Sie nach Ihrem Kennwort gefragt werden.

Wie man es repariert

  1. Generieren Sie ein persönliches Zugriffstoken . (Ausführliche Anleitung zum Erstellen eines persönlichen Zugriffstokens für die Befehlszeile .)
  2. Kopieren Sie das Personal Access Token.
  3. Versuchen Sie den Befehl, den Sie versucht haben, erneut und verwenden Sie anstelle Ihres Kennworts das persönliche Zugriffstoken.

Verwandte Frage: https://stackoverflow.com/a/21374369/101662


14
Kudos und Gegenstimmen; Die neue Token-Generation ist das, was ich brauchte. Ebenfalls; Der "Kopiercode" enthielt zusätzliche (ungültige) Zeichen, so dass ich meinen ... 20 [?] stelligen Zufallsschlüssel manuell eingeben musste.
th3byrdm4n

7
Dies war mein Problem, nachdem ich 2-Faktor-Authentifizierung hinzugefügt hatte, was ich vermutete, jedoch fehlte die Dokumentation dazu. Danke für die Antwort!
Pogrindis

11
@BeauSmith: Das ist eine wesentlich umfangreichere Bearbeitung, als wir normalerweise zulassen. Sie haben diese Antwort im Grunde komplett neu geschrieben. Bitte posten Sie dies stattdessen als Ihre eigene, separate Antwort . Siehe auch Was machen Sie, wenn jemand Ihre gesamte Antwort neu schreibt?
Martijn Pieters

8
Lassen Sie uns alle bitte zulassen, dass die Entscheidung von @Oliver hier rückgängig gemacht wird oder nicht - es gibt so oder so ein perfektes Argument
Flexo

10
Redakteur hier ... Da es den Anschein hat, dass Leute, die diese Antwort als richtig markieren (wie ich), auf diese Seite kommen, um ein Problem zu lösen, das sich geringfügig vom beabsichtigten Fragesteller unterscheidet, habe ich versucht, einige "Google Juice" -Begriffe hinzuzufügen und die Antwort visueller zu gestalten ansprechend, so dass andere, die diese Lösung suchen, sie finden können. Der Versuch, die Dinge für die Gemeinschaft besser zu machen. 😀
Beau Smith

86

Lösungsschritte:

  1. Schalttafel
  2. Qualifikationsmanager
  3. Klicken Sie auf Fensteranmeldeinformationen
  4. Im Abschnitt "Allgemeine Anmeldeinformationen" gibt es eine Git-URL, einen aktualisierten Benutzernamen und ein Passwort
  5. Starten Sie Git Bash neu und versuchen Sie es mit einem Klon

4
Ich hatte dieses Problem mit einer Firmenversion von github (also mit lokalem Benutzernamen / Passwort). Diese Lösung hat es behoben.
Mkennedy

In neuen Fenstern können Sie in Ihrer Sprache nach "Windows-Anmeldeinformationen" oder ähnlichem suchen. Es wird ein Ergebnis angezeigt, und Sie können diese Lösung ausprobieren.
Charles Tempo

1
Perfekte Lösung für Github vor Ort, wo Unternehmen Sie verpflichten, https
avi.elkharrat

56

Wenn Sie wie ich gerade Ihr Passwort aktualisiert haben und git pushauf dieses Problem gestoßen sind, gibt es eine super einfache Lösung.

Nur für Mac-Benutzer. Sie müssen Ihre OSX Keychain-Zugriffseinträge für GitHub löschen. Sie können dies über das Terminal tun, indem Sie die folgenden Befehle ausführen.

Löschen Sie Ihre Anmeldeinformationen über die Befehlszeile

Über die Befehlszeile können Sie den Helfer für Anmeldeinformationen direkt verwenden, um den Schlüsselbundeintrag zu löschen.

Geben Sie dazu den folgenden Befehl ein:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

Wenn es erfolgreich ist, wird nichts ausgedruckt. Um zu testen, ob es funktioniert, versuchen Sie, ein Repository von GitHub zu klonen, oder führen Sie Ihre vorherige Aktion erneut aus, wie in meinem Fall git push. Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, wurde der Schlüsselbundeintrag gelöscht.


2
Für Windows: Git Credential-Wincred löschen Host = github.com Protokoll = https
Juan Uribe

Ich habe dieses Problem bei einem BitBucket-Repo festgestellt. Diese Antwort mit host=bitbucket.organstelle von GitHub hat es für mich behoben.
Gutch

26

Wenn https://Git die URL verwendet, um eine Verbindung zu Ihrem Remote-Repository herzustellen, verwendet Git SSH nicht als Authentifizierung, sondern versucht stattdessen eine Basisauthentifizierung über HTTPS. Normalerweise verwenden Sie nur die URL ohne Benutzernamen, https://github.com/username/repository.gitund Git fordert Sie dann auf, sowohl einen Benutzernamen (Ihren GitHub-Benutzernamen) als auch Ihr Passwort einzugeben.

Wenn Sie verwenden https://something@github.com/username/repository.git, haben Sie den Benutzernamen voreingestellt, den Git für die Authentifizierung verwendet : something. Da Sie verwendet haben https://git@github.com, wird Git versuchen, sich mit dem gitBenutzernamen anzumelden, für den Ihr Passwort natürlich nicht funktioniert. Sie müssen also stattdessen Ihren Benutzernamen verwenden.

Die Alternative besteht darin, SSH zur Authentifizierung zu verwenden. Auf diese Weise müssen Sie Ihr Passwort nicht ständig eingeben. und da es bereits zu funktionieren scheint, sollten Sie es verwenden.

Dazu müssen Sie jedoch Ihre Remote-URL ändern, damit Git weiß, dass eine Verbindung über SSH hergestellt werden muss. Das Format lautet dann : git@github.com:username/repository. Verwenden Sie diesen Befehl, um Ihre URL zu aktualisieren:

git remote set-url origin git@github.com:username/repository

Wenn ich Ihren Befehl versuche, erhalte ich die folgende Meldung warning: remote.origin.url has multiple values. Dies kann daran liegen, dass meine Datei ~ / .gitconfig bereits ein Remote-Tag enthält, das den Wert enthält [remote "origin"] url=git@github.com:eurydyce/MDANSE.git.
Eurydike

18

Versuchen Sie einfach, es erneut in Ihre Filiale zu verschieben. Dadurch werden Sie erneut nach Ihrem Benutzernamen und Passwort gefragt, damit Sie das geänderte Passwort eingeben können. Damit Ihr neues Passwort wieder im Cache gespeichert wird.


4
Ich bin mir nicht sicher, warum dies abgelehnt wurde. In meinem Fall wurden meine Anmeldeinformationen aktualisiert und der zweite zur git pushEingabe des entsprechenden Updates aufgefordert, wie in dieser Antwort angegeben.
Digitales Trauma

Nicht sicher, was Sie meinten, es wird nicht nach neuen Anmeldeinformationen gefragt, die ausgeführt werden git push origin master...
Betlista

13

Anstatt es git pullauch zu versuchengit pull origin master

Ich habe das Passwort geändert und der erste Befehl gab einen Fehler aus:

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

Danach git pull origin masterfragte es nach dem Passwort und schien sich selbst zu aktualisieren


7

Sie müssen sich nicht darauf verlassen, ein persönliches Zugriffstoken zu generieren und dann zu versuchen, das persönliche Zugriffstoken anstelle Ihres Kennworts zu verwenden.

Eine schnelle Lösung besteht darin, Ihre Remote-URL so einzustellen, dass sie sshnicht auf zeigt https.

Mach das git remote set-url origin git@github.com:username/repository


5

Ich bekomme dies beim Klonen der App von bitbucket:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

Ich habe es gelöst. Hier müssen Sie ein Passwort für Ihre Benutzer-ID erstellen

  1. Klicken Sie auf Ihr Profil und Ihre Einstellungen Klicken Sie auf Ihr Profil und Ihre Einstellungen

  2. Dann App-Passwort erstellen Wählen Sie Ihren Namen. Das Passwort wird generiert. Fügen Sie dieses Passwort in das Terminal ein App-Passwort erstellen


4

Das Deaktivieren der 2-Faktor-Authentifizierung bei github hat bei mir funktioniert.

Ich sehe, dass es eine gelöschte Antwort gibt, die dies sagt, mit dem Löschgrund "beantwortet die Frage nicht". Wenn es funktioniert, dann denke ich, dass es die Frage beantwortet ...


Das ist komisch. Das gleiche passierte mit mir. Ich habe gerade die Zwei-Faktor-Authentifizierung deaktiviert und sie funktioniert jetzt für mich. :)
Abhijeetps

Das hat bei mir ab Juni 2020 funktioniert. Danke!
Gcamara14

4

Ich tat:

$git pull origin master

Dann wurde nach [Benutzername] und [Passwort] gefragt und es scheint jetzt gut zu funktionieren.


Das hat bei mir funktioniert. Ich habe stattdessen Fetch verwendet, aber es spielt sowieso keine Rolle. Cool!
Atereshkov

2

Falls Sie in dieser Situation die folgende Fehlermeldung erhalten:

  • mit github als unternehmer
  • using credential.helper = wincred in der Git-Konfiguration
  • Verwenden Sie Ihre Windows-Anmeldeinformationen, die Sie kürzlich geändert haben

Schauen Sie sich dann diese Antwort an: https://stackoverflow.com/a/39608906/521257

Windows speichert Anmeldeinformationen in einem Anmeldeinformations-Manager, löscht sie oder aktualisiert sie.


1

Möglicherweise wird dieser Fehler angezeigt, weil Sie Ihr Kennwort aktualisiert haben. Stellen Sie also auf dem Terminal zunächst sicher, dass Sie Ihre GitHub-Anmeldeinformationen aus dem Schlüsselbund löschen und dann Ihre Änderungen in Ihr Repo übertragen. Das Terminal fragt Sie nach Ihrem Benutzernamen und Passwort.


1

Ich hatte das gleiche Problem. Und ich habe es gelöst, indem ich den Pfad des Remote-Zweigs in den Repo-Einstellungen der Client-App von https://github.com/YourName/RepoNamenach git@github.com:YourName/RepoName.gitgeändert habe.


1

Ich stoße ständig auf dieses Problem. Stellen Sie sicher, dass Sie git --config user.name "" und nicht Ihren richtigen Namen festlegen, was ich einige Male getan habe.


0

Da Sie wahrscheinlich 2FA für Ihr Konto aktiviert lassen möchten, können Sie einen SSH-Schlüssel einrichten. Auf diese Weise müssen Sie Ihre Github-Anmeldeinformationen nicht jedes Mal eingeben, wenn Sie die Arbeit an Github senden möchten.

Alle Schritte zur Einrichtung von ssh finden Sie in der Dokumentation . Stellen Sie zunächst sicher, dass Sie derzeit keine SSH-Schlüssel (id_rsa.pub usw.) mit haben$ ls -al ~/.ssh


-1
  1. Schalttafel
  2. Qualifikationsmanager
  3. Suchen Sie nach Optionen für Webcredentials und Windows-Anmeldeinformationen
  4. In beiden Fällen finden Sie Github-Anmeldeinformationen, mit denen Sie die richtigen Anmeldeinformationen korrigieren können
  5. Öffnen Sie eine neue Instanz von Git Bash. Sie sollten in der Lage sein, Ihre Git-Befehle auszuführen.

Das hat bei mir funktioniert, ich konnte in mein Remote-Repo ziehen und schieben.


-1

Ich deaktiviere einfach die Zwei-Faktor-Authentifizierung und versuche es erneut. Für mich geht das.


-3

Diese Lösung hat bei mir funktioniert:

  1. Öffnen Sie die Systemsteuerung
  2. Gehen Sie zu Credential Manager
  3. Klicken Sie auf Fensteranmeldeinformationen
  4. Im Abschnitt "Allgemeine Anmeldeinformationen" gibt es eine Git-URL, einen aktualisierten Benutzernamen und ein Passwort
  5. Starten Sie Git Bash neu und versuchen Sie es mit einem Klon

1
Diese Antwort dupliziert eine vorhandene Antwort, die nicht nützlich ist. Wenn Sie genug Ruf haben (15, glaube ich), können Sie Antworten abstimmen, die Sie nützlich finden. Eine Abstimmung wäre die richtige Antwort, anstatt diese doppelte Antwort hinzuzufügen.
AdrianHHH
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.