Wie setzen Sie die gespeicherten Anmeldeinformationen in 'git credential-osxkeychain' zurück?

98

Ich habe die GitHub-Anweisungen zum Einrichten meines Kontos befolgt und kann klonen, aber nicht remote pushen.

Wenn ich einen "Git Push" mache, bekomme ich den 403 Fehler. Es hat die richtige URL. Ich habe versucht, mit einem "git credential-osxkeychain get" zu sehen, was es gab, und dies druckt die falschen Anmeldeinformationen aus.

Ich glaube, was passiert ist, war das erste Mal, dass nach den Anmeldeinformationen gefragt wurde. Ich dachte, es wäre eine andere Anwendung, die gefragt hat, und es wurden die falschen eingegeben.

Ich muss es nur zurücksetzen, damit es das richtige Schlüsselbundelement für mein GitHub-Konto verwendet.

Ich habe es versucht:

git credential-osxkeychain erase
git credential-osxkeychain set

Das Programm gibt niemals Eingabeaufforderungen aus. Set sagt "schlechte Eingabe", wenn ich nicht das Richtige tue. Ich habe versucht, " password=password" usw. einzufügen, aber wenn ich dann ein "get" mache, bekomme ich immer noch die alten.

Ich kann nicht herausfinden, wo diese gespeichert sind, da sie nicht in .gitconfigure enthalten sind. Außerdem gibt es keine aktuellen Schlüsselbundelemente, die es sein könnten. (Ich habe mehrere GitHub-Konten in meinem Schlüsselbund und es werden keine verwendet.)

Nirwana
quelle
Verwandte, Anmeldeinformationen Helfer Agnostiker: stackoverflow.com/questions/21745213/…
Ciro Santilli 6 冠状 病 六四. 事件 6.
Wahrscheinlich dasselbe unter Windows: stackoverflow.com/questions/15381198/…
Ciro Santilli 6 冠状 病 六四 事件 6

Antworten:

122

Vom Terminal:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

HINWEIS: Nachdem Sie oben "protocol = https" eingegeben haben, müssen Sie ~~ RETURN ~~ TWICE drücken

Maz
quelle
2
Aus irgendeinem Grund konnte ich in der Keychain-App keine Git / GitHub-Anmeldeinformationen finden, aber das hat funktioniert. Vielen Dank!
Donald
4
Da mir das nicht klar war: Sie müssen alle 3 Zeilen oben eingeben und dann erneut die Eingabetaste drücken - dh die Zeilen 2/3 oben werden nicht vom Befehl ausgegeben, sondern eingegeben.
Frederik
Diese Antwort hat mir geholfen. Vielen Dank!
Ken Flake
70

Ich bin nicht sicher, wie ich über die Befehlszeile löschen soll, aber es ist ziemlich einfach, dies über die Keychain Access-App zu tun. Gehen Sie einfach zu Anwendungen -> Dienstprogramme -> Schlüsselbundzugriff und geben Sie "github.com" ein. Sie können entweder das ungültige Element löschen oder das Kennwort mit der App aktualisieren.

Benzado
quelle
4
Wenn jemand, der dies liest, über die Befehlszeile herausfindet, wie es geht, wäre es schön zu wissen.
Funroll
1
@funroll Das Kommandozeilen-Tool ist security. Die Manpage gibt an, dass sie einen delete-internet-passwordBefehl hat.
Benzado
Vielen Dank für das Update, ich bin sicher, dass dies für jemanden nützlich sein wird.
Funroll
Dies ist die beste Lösung
Elias Fazel
Von welchem ​​Schlüsselbund?
Bryan Bryce
28

Die Lösung stellte sich wie folgt heraus:

Der Befehl git credential-osxkeychainverwendete den ersten GitHub-Kontoeintrag in meinem Schlüsselbund. Dieser war nicht derjenige, der Zugang zu den fraglichen Projekten hatte.

Ich habe das Problem behoben, indem ich das Konto in Keychain Access so berührt habe, dass sich sein Datum geändert hat (ich glaube, ich habe gerade den Kommentar geändert). Jetzt, da es das neueste GitHub-Konto wurde, war es das erste, das an credential-osxkeychain zurückgegeben wurde, und somit hat alles funktioniert .

Eine bessere Form der Unterstützung für mehrere GitHub-Konten wäre nett, aber es ist wahrscheinlich, dass die meisten Leute nur ein primäres Konto haben und nicht auf dieses Problem stoßen.

Nirwana
quelle
2
Ich bin nicht sicher, wie dies für mehrere Benutzer auf demselben Host funktioniert, aber Sie können ssh ~/.ssh/configauschecken und eine Datei verwenden, anstatt OSX Keychain zu verwenden. Dies wird in Fällen verwendet, in denen Sie möglicherweise mehrere SSH-Schlüssel für verschiedene Hosts (und auch für denkende Konten) haben. nerderati.com/2011/03/17/…
jusopi
10

git-credential-osxkeychain speichert Kennwörter im Apple Keychain, wie oben angegeben.

Standardmäßig berücksichtigt gitcredentials nur den Domänennamen. Wenn Sie möchten, dass Git den vollständigen Pfad berücksichtigt (z. B. wenn Sie mehrere GitHub-Konten haben), setzen Sie die useHttpPathVariable auf true, wie unter http://git-scm.com/docs/gitcredentials.html beschrieben . Beachten Sie, dass beim Ändern dieser Einstellung Ihre Anmeldeinformationen für jede URL erneut abgefragt werden.

MacFreek
quelle
7

Verwenden Sie auf einem Mac den Befehl git credential-osxkeychain erase.

OR entfernen manuell aus Schlüsselanhänger von AnwendungenDienstprogrammeSchlüsselbund . Entfernen Sie dann den Schlüsselbund von github.com. Verwenden Sie dann push; es wird nach dem Schlüsselbundzugriff gefragt; dann leugnen.

Es wird nach dem neuen Benutzernamen und Passwort gefragt, es hinzugefügt und dann eine Datei dafür gepusht.

Nachdem git pushich diesen Fehler gefunden habe. Dann benutze ich die Großbuchstaben:

remote: Berechtigung für Benutzer1 / file.git für Benutzer2 verweigert (zuvor vorhandener Benutzer). schwerwiegend: Zugriff auf ' https://github.com/xxxxxxxxxxxx/ ' nicht möglich: Die angeforderte URL hat den folgenden Fehler zurückgegeben: 403

Amit Kumar
quelle
6

Versuche zu rennen /Applications/Utilities/Keychain Access.

Echristopherson
quelle