Wie kann ich sicherstellen, dass Git mich nicht nach meinem GitHub-Benutzernamen und -Passwort fragt?

197148
picardo

Ich arbeite mit einem Repo auf GitHub und jedes Mal, wenn ich versuche, etwas zu pushen, werden Sie nach meinem GitHub-Benutzernamen und -Passwort gefragt. Das will ich nicht.

Ich habe die Anweisungen zum Einrichten Ihrer E-Mail- Adresse in Git ausprobiert, nämlich die Git-Variablen github.user und github.token. Dies hat jedoch keinen Unterschied gemacht.

Ich verstehe nicht, warum das so ist.

160
Sie müssen das Kennwort zwischenspeichern: https://help.github.com/articles/set-up-git#password-caching Piotr Usewicz vor 11 Jahren 0

12 Antworten auf die Frage

205
Sergio Morstabilini

Hatte heute ein ähnliches Problem: Ich habe Dinge in meiner Arbeitskopie versaut, also entschloss ich mich, das Verzeichnis umzubenennen und mein Projekt erneut von Github zu klonen. Nachdem ich das getan hatte, musste ich mein Passwort eingeben, um eine Pull / Push-Anfrage auszuführen, anstatt die Passphrase genau wie früher einzugeben.

Das liegt daran, dass ich heute das https-Protokoll zum Klonen des Projekts verwendet habe! Um zu prüfen, welches Protokoll Sie verwenden, starten Sie es einfach

git config -l 

und schauen Sie sich die Zeile an, die mit 'remote.origin.url' beginnt.

So wechseln Sie die Protokolle:

git config remote.origin.url git@github.com:the_repository_username/your_project.git 

the_repository_usernameund your_projectsollte durch den entsprechenden Repository-Namen und den Besitzer dieses Repositorys ersetzt werden. Der Benutzername gehört Ihnen, wenn Sie das Repository besitzen, oder den Benutzernamen des Repository-Besitzers.

Es hat für mich funktioniert. Eine Sache ist, dass die URL nicht meinen Benutzernamen enthält, sondern die Repo-Adresse, wie sie auf github angezeigt wird: `git@github.com: some-user / repo-name.git` B Seven vor 12 Jahren 5
Hinweis: Google hat mich hierher gebracht. Ich hatte die `remote.origin.url` auf die https-Methode gesetzt und habe nicht einmal bemerkt, dass es` https` vs `ssh`-Methoden gibt. Diese URL hat mir geholfen, das Offensichtliche zu erkennen: https://help.github.com/articles/why-is-git-always-asking-for-my-password Chris K vor 11 Jahren 1
Gibt es eine Möglichkeit, das Passwort einzugeben? zishe vor 11 Jahren 0
Q für diejenigen mit git-Wissen: Jeder Unterschied (oder Präferenz) zwischen `git config remote.origin.url ...` oben verwendet, vs. `git Remote-Set-URL-Ursprung ...`? Daryn vor 11 Jahren 0
Ich konnte mir nicht vorstellen, wie man so einen falschen Ursprung entfernt. Die Antwort lautet: "git remote rm origin" Vacilando vor 11 Jahren 0
Warum nicht einfach git config --global user.name "my_username" `? Ich bin damit einverstanden, dass github den Benutzernamen nicht zur Klon-URL hinzufügt. Buttle Butkus vor 8 Jahren 0
Danke, @ChrisK !! Der SSH / HTTPS-Unterschied bei https://help.github.com/articles/why-is-git-always-asking-for-my-password/ war für mich hilfreich. :-) Ryan vor 7 Jahren 0
Anstatt alle Einstellungen mit "git config -l" aufzulisten, können Sie "git remote -v" verwenden, um die URLs des Remote-Repositorys gezielt anzuzeigen. Steven M. Vascellaro vor 5 Jahren 0
Wenn ich versuche zu pushen, bekomme ich `git@github.com: Erlaubnis verweigert (publickey) .` Steven M. Vascellaro vor 5 Jahren 0
28
Eray

Wenn Sie HTTPS anstelle von SSH verwenden, können Sie folgende Schritte ausführen:

  1. Finden Sie Ihre Remote-URL (remote.origin.url) mit

    git config -l 

    Danke an Sergio Morstabilini

  2. Ihre Remote-URL lautet wie folgt: https: // @ github.com / / .git

  3. Führen Sie diesen Befehl aus:

    git config remote.origin.url https://:@github.com//.git 
Mein Benutzername selbst enthält @, funktionierte nicht für mich. coding_idiot vor 9 Jahren 1
Wenn dies nicht der Fall ist (Sie müssen Ihre E-Mail-Adresse nicht verwenden), funktioniert es einwandfrei! Vielen Dank. Killah vor 9 Jahren 0
Wenn Ihr Benutzername ein @ enthält, müssen Sie es URL-kodieren. http://meyerweb.com/eric/tools/dencoder/ Tim Bodeit vor 9 Jahren 3
Sie sollten Ihr Passwort aus Sicherheitsgründen weglassen. zygimantus vor 8 Jahren 1
Achtung, das Passwort wird in Klartext in der `.git / config`-Datei gespeichert! Amro vor 8 Jahren 3
27
Benjamin Bannier

Sie müssen einen ssh-agent einrichten, gegen den Sie sich nur einmal authentifizieren müssen. Siehe diese Antwort bei SO für ein Howto.

Diese Lösung ist jedoch für Ssh-Familienphrasen. Das Problem ist, dass git "git push" verwendet, was den ssh-agent nicht auslöst, nehme ich an. (Ich habe das schon gemacht, also weiß ich, dass es nicht funktioniert.) picardo vor 13 Jahren 1
@picardo: Ich habe das gemacht und es funktioniert tatsächlich. Daenyth vor 13 Jahren 2
26
stefanmaric

Ich bevorzuge HTTPS, ich finde es einfacher und sicherer als das Einrichten der SSH-Schlüssel.

Mit HTTPS können Sie verhindern, dass git Ihren Benutzernamen nach github-Fernbedienungen abfragt:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com" 

Und Sie können die Häufigkeit, mit der git Sie nach Ihrem Passwort fragt, zumindest verringern, indem Sie:

git config --global credential.helper 'cache --timeout=28800' 

Wo sind 28800 8 Stunden. Ich benutze dieses Setup, um mein Passwort nur einmal einzugeben, wenn ich meinen Arbeitstag beginne.

Danach haben Sie diese Einträge in Ihrem ~/.gitconfig

[url "https://yourusername@github.com"] insteadOf = https://github.com  [credential] helper = cache --timeout=28800 

Quelle:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config

Es hat wie ein Zauber funktioniert. Vielen Dank. david euler vor 6 Jahren 0
6
Brian Burns

Wenn Sie mit HTTPS unter Windows arbeiten, probieren Sie den Git-Anmeldeinformationsspeicher aus. Dieser verwendet den Windows-Anmeldeinformationsspeicher, um Ihren Namen und Ihr Kennwort zu speichern.

Windows Credential Store for Git This application is a small helper app designed to follow the  git credentials API as defined by the Git Documentation.  Installation 1. Download the git-credential-winstore.exe application 2. Run it! If you have GIT in your PATH, it should just work. 

Wenn Sie dann das nächste Mal Ihren Namen und Ihr Kennwort eingeben, werden diese für Sie gespeichert.

Vielen Dank. Das Projekt wurde in [Git-Credential-Manager-for-Windows] (https://github.com/Microsoft/Git-Credential-Manager-for-Windows) umbenannt. Michael S. vor 7 Jahren 1
5
Daenyth

Wenn Sie einen ssh-Schlüssel für github einrichten, ist dies nicht Ihr Standardschlüssel, und Sie müssen Ihrem Abschnitt einen Abschnitt hinzufügen ~/.ssh/config

Host *github.com User git IdentityFile ~/.ssh/github_id_rsa 
5
David Jeske

Wenn Sie jedes Mal zur Eingabe Ihres Kennworts aufgefordert werden, aber nicht nur Ihren Benutzernamen, dann konfigurieren Sie die Fernbedienung als HTTPS mit einem Benutzernamen.

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name 

Danach werden Sie jedes Mal zur Eingabe Ihres Passworts aufgefordert, nicht jedoch Ihren Benutzernamen.

So ziehe ich es vor, da ich gerne mein Github-Passwort eingeben muss, bevor ich es mit der Welt teilen kann.

2
John Berryman

Die Dinge sind etwas anders, wenn Sie 2-Faktor-Authentifizierung verwenden, wie ich es bin. Da ich anderswo keine gute Antwort gefunden habe, werde ich hier eine halten, damit ich sie später finden kann.

Wenn Sie die 2-Faktor-Authentifizierung verwenden, funktioniert die Angabe von Benutzername / Kennwort nicht als Ereignis - Sie erhalten keinen Zugriff. Sie können jedoch ein Anwendungszugriffstoken und git Credential Helper verwenden, um das für Sie zu cachen. Hier sind die relevanten Links:

Ich kann mich nicht erinnern, wo ich das gesehen habe, aber wenn Sie nach Ihrem Benutzernamen gefragt werden - dort halten Sie das Zugriffstoken für die Anwendung. Dann lassen Sie das Passwort leer. Arbeitete an meinem Mac.

1
William Earl Cheaqui

Also if you are using Windows, you can use:

$ git config --global credential.helper wincred 

you just have to sign in one more time and then git will remember.

1
ViToni

Die Frage nach dem Benutzernamen ist für mich ärgerlich, aber nach einem Passwort zu fragen ist nett, da es sicherstellt, dass Sie wirklich mit Ihren Änderungen an die Öffentlichkeit treten möchten ...

Also füge ich das einfach zu ".gitconfig" hinzu

[url "https://myusername@github.com"] insteadOf = https://github.com