Git: Benutzer- und Passwortabfrage erzwingen

75

Ich habe kürzlich meine lokale Git-Installation auf 1.8.1von aktualisiert 1.8.0.1.

Ich stelle fest, dass ich bei der Arbeit an GitHub beim Push nicht mehr nach Benutzername und Passwort gefragt werde.

Dies beunruhigt mich, da ich es als gute Sicherheitsmaßnahme sehe, jedes Mal Benutzer und Passwort eingeben zu müssen. (Was ist, wenn jemand anderes meinen Computer benutzt?)

Ich habe Folgendes überprüft:

  • 1.8.0.1 auf einem anderen Computer fragt noch nach Benutzername und Passwort.
  • Mein Konto bei Github erzwingt weiterhin private / Sicherheitskontrollen.
  • Ich verwende https-Remote-Referenzen anstelle von ssh.
  • Für ein gutes Maß habe ich meinen ~/.sshFonder eingecheckt. Da ist nichts falsch.
  • Ich bin nicht die Login - Daten bei der Speicherung ~/.gitconfigoder einzelne <proj>/.git/configDateien.
  • Ich bin auch nicht speichern etwas Github-bezogenen in ~/.netrc.
  • Ich habe ein neues Dummy-Archiv erstellt, das mich immer noch nicht zur Anmeldung auffordert.

Ich konnte nichts im Git- Release-Notes-Archiv finden .

Weiß jemand, ob dies ein neues Git-Verhalten ist? Wie stelle ich die Eingabeaufforderung wieder her?

tompave
quelle
Haben Sie eine %HOME%\_netrcDatei mit Ihrem Berechtigungsnachweis? (wie in stackoverflow.com/questions/11021803/… ) Oder haben Sie eine Art Caching von Anmeldeinformationen aktiviert? (wie in stackoverflow.com/questions/6191985/… ) Oder arbeiten Sie mit GitHub für Windows?
VonC
Vielen Dank. Ich arbeite an OS X. Ich habe eine ~/.netrcDatei, aber dort ist nichts mit Github zu tun (ich habe vergessen, das zu erwähnen und füge sie jetzt hinzu). Mit git config -lsehe ich jetzt habe ich eine credential.helper=osxkeychainOption. Danke, ich werde die Manpages lesen. Könnten Sie Ihren Kommentar als Antwort erweitern?
Tompave
Der Kommentar wurde als Antwort mit Links zu Referenzen erweitert.
VonC
5
Ich habe git config --global --unset credential.helperund git config --system --unset credential.helperund es brachte die Login-Eingabeaufforderung zurück.
Yooy

Antworten:

24

Mit git config -lsehe ich jetzt, dass ich eine credential.helper=osxkeychainOption habe

Das bedeutet, dass der Helfer für Anmeldeinformationen (ursprünglich in 1.7.10 eingeführt) jetzt wirksam ist und das Kennwort für den Zugriff auf ein Remote-Repository über HTTP automatisch zwischenspeichert.
(wie in " GIT: Gibt es eine Möglichkeit, Standard-Anmeldeinformationen festzulegen? ")

Sie können diese Option vollständig oder nur für ein einzelnes Repo deaktivieren .

VonC
quelle
1
Vielen Dank. Es hat eine Weile --systemgedauert, weil die Option aus irgendeinem Grund in der Konfigurationsdatei und nicht in der --globaleinen war. Ich frage mich immer noch, wie das eingeschaltet wurde.
Tompave
Hatten Sie GitExtensions oder einen anderen Client installiert, der es eingeschaltet hat? Ich kann mich nicht erinnern, es eingeschaltet zu haben, bis ich GitExtensions installiert habe.
RuntimeException
Anscheinend könnte dies die Ursache sein. Der Cache-Daemon für Anmeldeinformationen. Ich bin mir nicht sicher, ob dies unter Windows die gleiche Ursache ist. stackoverflow.com/a/15382950/15789
RuntimeException
1
@ RuntimeException unter Windows, standardmäßig ist der Helfer für Anmeldeinformationen der Microsoft Credential Manager (also kein Daemon): stackoverflow.com/a/42152514/6309
VonC
1
Danke, das hat mich auf den richtigen Weg gebracht. Ich habe das Tool für den Schlüsselbundzugriff in OS X gestartet und dort alle Github-Inhalte gelöscht ... Das Problem wurde behoben.
Shai Almog
121

Fügen Sie mit Ihrem git-Befehl ein -v-Flag hinzu. z.B git pull -v

v steht für verify.

sapy
quelle
1
Hat auch für mich gearbeitet. Seltsam, dass auf Git-Manpages nichts erwähnt wird.
Joao Cenoura
1
@joao Ich habe einen meiner Kollegen gesehen, der diesen Befehl verwendet hat, und ich habe mich sofort daran erinnert. Ich habe das auch nirgendwo dokumentiert gesehen. Es sieht eher aus wie --verbose flag, nicht sicher warum es funktioniert :)
sapy
Ja . Es hat auch meine Aufmerksamkeit erregt, es sieht aus wie ausführlich oder Version ... Aber tatsächlich steht es für verify. Git hat seltsame Nomenklaturen.
Sapy
5
Git Version 1.7.1 Manpages zeigen, dass -vfür verbose für git-pullandgit-fetch
peter
6
Hat absolut nichts für mich getan. Ich habe nichts angefordert. Einfach geschoben.
Devil's Advocate
65

Dies liegt höchstwahrscheinlich daran, dass Sie mehrere Konten haben, z. B. ein privates und eines für die Arbeit mit GitHub.

LÖSUNG Gehen Sie unter Windows zu Start> Anmeldeinformations-Manager> Windows-Anmeldeinformationen und entfernen Sie GitHub-Creds. Versuchen Sie dann erneut zu ziehen oder zu drücken, und Sie werden aufgefordert, sich erneut bei GitHub anzumelden

LÖSUNG OnMac , Problem am Terminal:

git remote set-url origin https://[email protected]/username/repo-name.git

indem Sie 'Benutzername' an beiden Stellen durch Ihren GitHub-Benutzernamen ersetzen und Ihren GitHub-Repo-Namen angeben.

Pixel
quelle
1
das ist es, wonach ich gesucht habe.
Hafiz Siddiq
2
groß! Vielen Dank
Codiee
11

Keiner von denen hat für mich gearbeitet. Ich habe versucht, ein Verzeichnis von einem privaten Git-Server zu klonen und habe meine Anmeldeinformationen falsch eingegeben. Bei nachfolgenden Versuchen konnte ich dann keine anderen Anmeldeinformationen ausprobieren. Es ist nur sofort ein Fehler mit einem Authentifizierungsfehler aufgetreten.

Was funktioniert hat, war die Angabe des Benutzernamens ( mike-wise) in der URL wie folgt:

   git clone https://[email protected]/someuser/somerepo.git
Mike Wise
quelle
1
Dies machte den Unterschied für mich (ich bin auf einem verwalteten Computer, der keinen Zugriff auf den Anmeldeinformations-Manager erlaubt)
Malcolm Anderson
5

Da die Frage mit gekennzeichnet ist Github, können Sie durch Hinzufügen einer weiteren Fernbedienung https_originund Hinzufügen der httpsVerbindung immer gezwungen werden, das Kennwort einzugeben:

git remote add https_origin https://github.com/.../...
Afshin Mehrabani
quelle
1
Das hat bei mir nicht funktioniert. Ich kann die https-Fernbedienung hinzufügen, aber es wird immer noch "Erlaubnis für <myusername> verweigert" angezeigt, ohne mich dazu aufzufordern.
LondonRob
1

Ergänzung zur dritten Antwort: Wenn Sie nicht-englisches Windows verwenden, finden Sie "Anmeldeinformations-Manager" über "Systemsteuerung"> "Benutzerkonten"> "Anmeldeinformations-Manager" im Symbol des Anmeldeinformations-Managers

Владимир Шомин
quelle