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://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/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 [email protected]
bekomme 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?
Antworten:
https: //[email protected]/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://[email protected]:eurydyce/MDANSE.git
oder einfach[email protected]:eurydyce/MDANSE.git
Der OP Pellegrini Eric fügt hinzu:
Dies sollte nicht in Ihrer globalen Konfiguration sein (die in
~/
).Sie können
git config -l
Ihr 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-url
Befehl 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.
quelle
~/.ssh/config
oder%USERPROFILE%\.ssh\config
-Datei mit einemgithub.com
Eintrag darin haben.Zwei - Faktor - Authentifizierung (2FA) Nach der Aktivierung können Sie so etwas wie dies sehen , wenn sie versuchen , Verwendung
git clone
,git fetch
,git pull
odergit push
:Warum passiert das?
Aus der GitHub-Hilfedokumentation :
Wie man es repariert
Verwandte Frage: https://stackoverflow.com/a/21374369/101662
quelle
Lösungsschritte:
quelle
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:
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.quelle
host=bitbucket.org
anstelle von GitHub hat es für mich behoben.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.git
und Git fordert Sie dann auf, sowohl einen Benutzernamen (Ihren GitHub-Benutzernamen) als auch Ihr Passwort einzugeben.Wenn Sie verwenden
https://[email protected]/username/repository.git
, haben Sie den Benutzernamen voreingestellt, den Git für die Authentifizierung verwendet :something
. Da Sie verwendet habenhttps://[email protected]
, wird Git versuchen, sich mit demgit
Benutzernamen 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 :
[email protected]:username/repository
. Verwenden Sie diesen Befehl, um Ihre URL zu aktualisieren:quelle
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"] [email protected]:eurydyce/MDANSE.git
.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.
quelle
git push
Eingabe des entsprechenden Updates aufgefordert, wie in dieser Antwort angegeben.git push origin master
...Anstatt es
git pull
auch zu versuchengit pull origin master
Ich habe das Passwort geändert und der erste Befehl gab einen Fehler aus:
Danach
git pull origin master
fragte es nach dem Passwort und schien sich selbst zu aktualisierenquelle
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
ssh
nicht auf zeigthttps
.Mach das
git remote set-url origin [email protected]:username/repository
quelle
Ich bekomme dies beim Klonen der App von bitbucket:
Ich habe es gelöst. Hier müssen Sie ein Passwort für Ihre Benutzer-ID erstellen
Klicken Sie auf Ihr Profil und Ihre Einstellungen
Dann App-Passwort erstellen Wählen Sie Ihren Namen. Das Passwort wird generiert. Fügen Sie dieses Passwort in das Terminal ein
quelle
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 ...
quelle
Ich tat:
Dann wurde nach [Benutzername] und [Passwort] gefragt und es scheint jetzt gut zu funktionieren.
quelle
Falls Sie in dieser Situation die folgende Fehlermeldung erhalten:
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.
quelle
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.
quelle
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/RepoName
nach[email protected]:YourName/RepoName.git
geändert habe.quelle
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.
quelle
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
quelle
Das hat bei mir funktioniert, ich konnte in mein Remote-Repo ziehen und schieben.
quelle
Ich deaktiviere einfach die Zwei-Faktor-Authentifizierung und versuche es erneut. Für mich geht das.
quelle
Diese Lösung hat bei mir funktioniert:
quelle