Ich habe ein Projekt auf GitHub gehostet. Ich versage beim Versuch, meine Änderungen auf den Master zu verschieben. Ich bekomme immer die folgende Fehlermeldung
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/eurydyce/MDANSE.git/'
Das Einstellen meines SSH-Schlüssels auf Github scheint jedoch in Ordnung zu sein. In der Tat bekomme ich, wenn ich einen ssh -T [email protected]
mache
Hi eurydyce! You've successfully authenticated, but GitHub does not provide Shell access.
Dies scheint zu bedeuten, dass von dieser Seite aus alles in Ordnung ist (eurydyce ist mein github-Benutzername). Ich habe die Anweisungen zu github und die Empfehlungen vieler Stack-Diskussionen strikt befolgt, aber auf keinen Fall. Hätten Sie eine Ahnung, was ich falsch gemacht habe?
https: //[email protected]/eurydyce/MDANSE.git ist keine ssh-URL, sondern eine https-URL (die Ihren GitHub-Kontonamen anstelle von "git
" erfordert).
Versuchen Sie, ssh://[email protected]:eurydyce/MDANSE.git
oder nur [email protected]:eurydyce/MDANSE.git
zu verwenden.
git remote set-url Origin [email protected]:eurydyce/MDANSE.git
Der OP Pellegrini Eric fügt hinzu:
Das habe ich in meiner
~/.gitconfig
-Datei getan, die momentan die folgenden Einträge enthält[remote "Origin"] [email protected]:eurydyce/MDANSE.git
Dies sollte nicht in Ihrer globalen Konfiguration sein (die in ~/
).
Sie könnten git config -l
in Ihrem Repo überprüfen: Diese URL sollte in local config: <yourrepo>/.git/config
deklariert werden.
Stellen Sie daher sicher, dass Sie sich im Repo-Pfad befinden, wenn Sie den Befehl git remote set-url
ausführen.
Nachdem Sie die Zwei-Faktor-Authentifizierung (2FA) aktiviert haben, wird möglicherweise Folgendes angezeigt, wenn Sie versuchen, git clone
, git fetch
, git pull
oder git Push
zu verwenden:
$ git Push Origin master
Username for 'https://github.com': your_user_name
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'
Aus der GitHub Help Dokumentation :
Nachdem 2FA aktiviert ist, müssen Sie anstelle eines 2FA-Codes und Ihres GitHub-Passworts ein persönliches Zugriffstoken eingeben.
...
Wenn Sie beispielsweise über Git in der Befehlszeile auf ein Repository zugreifen, indem Sie Befehle wie
git clone
,git fetch
,git pull
odergit Push
mit HTTPS-URLs verwenden, müssen Sie Ihren GitHub-Benutzernamen und Ihr persönliches Zugriffstoken angeben, wenn Sie zur Eingabe eines Benutzernamens und Kennworts aufgefordert werden. Die Eingabeaufforderung der Befehlszeile gibt nicht an, dass Sie Ihr persönliches Zugriffstoken eingeben müssen, wenn Sie nach Ihrem Kennwort gefragt werden.
Zugehörige Frage: https://stackoverflow.com/a/21374369/101662
Lösungsschritte:
Wenn Sie die https://
-URL verwenden, um eine Verbindung zu Ihrem Remote-Repository herzustellen, verwendet Git SSH nicht als Authentifizierung, sondern versucht eine Standardauthentifizierung über HTTPS. Normalerweise würden Sie die URL nur ohne Benutzernamen verwenden, z. https://github.com/username/repository.git
und Git würde Sie dann auffordern, einen Benutzernamen (Ihren GitHub-Benutzernamen) und Ihr Passwort einzugeben.
Wenn Sie https://[email protected]/username/repository.git
verwenden, haben Sie den von Git zur Authentifizierung verwendeten Benutzernamen voreingestellt: something
. Da Sie https://[email protected]
verwendet haben, versucht Git, sich mit dem git
-Benutzernamen anzumelden, für den Ihr Passwort natürlich nicht funktioniert. Sie müssen also stattdessen Ihren Benutzernamen verwenden.
Die Alternative ist die Verwendung von SSH zur Authentifizierung. Auf diese Weise müssen Sie nicht ständig Ihr Passwort eingeben. und da es bereits zu funktionieren scheint, sollten Sie es verwenden.
Dazu müssen Sie jedoch Ihre Remote-URL ändern, sodass Git weiß, dass er über SSH eine Verbindung herstellen muss. Das Format ist dann folgendes: [email protected]:username/repository
. Um Ihre URL zu aktualisieren, verwenden Sie diesen Befehl:
git remote set-url Origin [email protected]:username/repository
Wenn Sie wie ich gerade Ihr Passwort aktualisiert und
git Push
ausgeführt haben, um dieses Problem zu lösen, 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.
Über die Befehlszeile können Sie den Schlüsselbundeintrag direkt mit der Anmeldeinformations-Hilfe 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 aus GitHub zu kopieren oder Ihre vorherige Aktion erneut auszuführen, wie in meinem Fall git Push
. Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, wurde der Schlüsselbundeintrag gelöscht.
versuchen Sie einfach, es erneut in Ihre Zweigstelle zu verschieben. Dadurch werden Sie erneut nach Ihrem Benutzernamen und Kennwort gefragt, sodass Sie das geänderte Kennwort eingeben können. Damit Ihr neues Passwort wieder im Cache gespeichert wird.
Anstelle von git pull
probiere auch git 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 ...
Nach git pull Origin master
fragte es nach dem Passwort und schien sich selbst zu aktualisieren
Ich erhalte dies, während ich die App von bitbucket klone:
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
Möglicherweise wird diese Fehlermeldung angezeigt, weil Sie Ihr Kennwort aktualisiert haben. Vergewissern Sie sich also auf Terminal, dass Sie Ihre GitHub-Anmeldeinformationen aus dem Schlüsselbund löschen, und drücken Sie dann die Änderungen in Ihr Repo. Das Terminal fragt nach Ihrem Benutzernamen und Kennwort.
Falls Sie diese Fehlermeldung in dieser Situation erhalten:
Dann schauen Sie sich diese Antwort an: https://stackoverflow.com/a/39608906/521257
Windows speichert Anmeldeinformationen in einem Anmeldeinformations-Manager, löscht ihn oder aktualisiert ihn.
Sie müssen sich nicht darauf verlassen, dass Sie ein Personal Access Token generieren und anschließend Personal Access Token anstelle Ihres Kennworts verwenden.
Sie können Ihre Remote-URL so einstellen, dass sie auf ssh
und nicht auf https
verweist.
Tun Sie dies git remote set-url Origin [email protected]:username/repository
Die Deaktivierung der 2-Faktor-Authentifizierung bei github hat für mich funktioniert.
Ich sehe, dass es eine gelöschte Antwort gibt, die dies sagt, mit dem Löschungsgrund als "beantwortet die Frage nicht". Wenn es funktioniert, dann denke ich, dass es die Frage beantwortet ...
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 auf Github übertragen möchten.
Sie finden alle Schritte zur Einrichtung von ssh in Dokumentation . Stellen Sie zunächst sicher, dass Sie derzeit keine SSH-Schlüssel (id_rsa.pub usw.) mit $ ls -al ~/.ssh
haben.
Ich hatte das gleiche Problem. Und ich habe das Problem gelöst, indem ich den Pfad des Remote-Zweigs in den Repo-Einstellungen der Client-App von https://github.com/YourName/RepoName
in [email protected]:YourName/RepoName.git
geändert habe.