2010-10-14 17:17:28 +0000 2010-10-14 17:17:28 +0000
174
174

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

Ich arbeite mit einem Repo auf GitHub und jedes Mal, wenn ich versuche, etwas zu pushen, wird nach meinem GitHub-Benutzernamen und -Passwort gefragt. Ich will nicht, dass es das tut.

Ich habe die Anweisungen auf setting your email in Git ausprobiert, nämlich die Git-Variablen github.user und github.token einzurichten, aber das hat keinen Unterschied gemacht.

Ich verstehe nicht, warum das passiert.

Antworten (12)

215
215
215
2011-08-08 22:36:29 +0000

Hatte heute ein ähnliches Problem: Ich habe in meiner Arbeitskopie Mist gebaut, also beschloss ich, das Verzeichnis umzubenennen und mein Projekt erneut von github aus zu klonen. Aber nachdem ich das getan hatte, musste ich für jede Pull/Push-Anfrage mein Passwort eingeben, anstatt die Passphrase nur einmal einzugeben, wie ich es früher getan hatte.

Das lag daran, dass ich heute das https-Protokoll zum Klonen des Projekts verwendet habe! Um zu überprüfen, welches Protokoll Sie verwenden, führen Sie einfach

git config -l

aus und schauen Sie auf die Zeile, die mit ‘remote.origin.url’ beginnt.

Um die Protokolle zu wechseln:

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

the_repository_username und your_project sollten durch den entsprechenden Repository-Namen und den Eigentümer dieses Repositorys ersetzt werden. Der Benutzername ist Ihr Benutzername, wenn Sie der Eigentümer des Repositoriums sind, oder andernfalls der Benutzername des Repository-Besitzers.

34
34
34
2010-10-14 17:28:04 +0000

Sie müssen einen ssh-agent einrichten, gegen den Sie sich nur einmal authentifizieren müssen. Siehe diese Antwort drüben unter SO für eine Anleitung.

31
31
31
2013-12-03 22:40:15 +0000

Wenn Sie HTTPS anstelle von SSH verwenden, können Sie wie folgt vorgehen:

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

  2. Ihre Remote-URL wird wie folgt aussehen: https://{BENUTZERNAME}@github.com/{BENUTZERNAME}/{REPONAME}.git

  3. Führen Sie diesen Befehl aus:

26
26
26
2014-11-21 04:27:04 +0000

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

Mit HTTPS können Sie git daran hindern, nach Ihrem Benutzernamen für github-Fernbedienungen zu fragen, indem Sie Folgendes tun:

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

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

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

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

Danach haben Sie diese Einträge innerhalb Ihrer ~/.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

6
6
6
2014-02-23 11:54:29 +0000

Wenn Sie unter Windows mit HTTPS arbeiten, versuchen Sie es mit dem Git Credential Store - er verwendet den Windows Credential Store, 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 das nächste Mal Ihren Namen und Ihr Kennwort eingeben, merkt er sich diese für Sie.

6
6
6
2010-10-14 19:45:54 +0000

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

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
``` hinzufügen
5
5
5
2013-08-11 03:17:37 +0000

Wenn Sie außerdem jederzeit nach Ihrem Passwort, aber nicht nach Ihrem Benutzernamen gefragt werden möchten, dann konfigurieren Sie die Fernbedienung als HTTPS mit einem Benutzernamen. So…

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

Danach werden Sie jedes Mal nach Ihrem Passwort gefragt, aber nicht nach Ihrem Benutzernamen.

So bevorzuge ich es, da ich gerne gezwungen werde, mein Github-Passwort einzugeben, bevor ich es mit der Welt teile.

2
2
2
2014-09-25 19:45:49 +0000

Die Dinge sind ein wenig anders, wenn Sie wie ich 2-Faktoren-Auth verwenden. Da ich nirgendwo anders eine gute Antwort gefunden habe, stecke ich eine hierhin, damit ich sie vielleicht später finden kann.

Wenn Sie 2-Faktor-Auth verwenden, funktioniert die Angabe von Benutzername/Passwort nicht - Sie erhalten Zugriffsverweigerung. Aber Sie können ein Anwendungs-Zugriffstoken verwenden und den Credential Helfer von git benutzen, um das für Sie zwischenzuspeichern. Hier sind die entsprechenden Links:

Und ich weiß nicht mehr, wo ich das gesehen habe, aber wenn Sie nach Ihrem Benutzernamen gefragt werden - dort kleben Sie das Anwendungs-Zugriffstoken. Dann lassen Sie das Passwort leer. Hat auf meinem Mac funktioniert.

2
2
2
2016-06-19 21:27:34 +0000

verwenden Sie SSH

Um zu verhindern, dass GitHub beim Drücken nach dem Passwort fragt, sollten Sie idealerweise SSH (git@github.com:...) anstelle von HTTPS-URL (https://github.com/...) verwenden und Ihren SSH-Schlüssel zu Ihrem GitHub-Konto hinzufügen . Siehe: Welche Remote-URL soll ich verwenden?

a credential helper

Andernfalls, wenn Sie wirklich HTTPS verwenden müssen, um Ihr GitHub-Passwort in Git zwischenzuspeichern, sollten Sie einen Credential helper verwenden, um Git zu sagen, dass es sich Ihren GitHub-Benutzernamen und Ihr Passwort jedes Mal merken soll, wenn es mit GitHub spricht.

  • Mac: git config --global credential.helper osxkeychain (osxkeychain helper ist erforderlich),
  • Windows: git config --global credential.helper wincred
  • Linux und andere: git config --global credential.helper cache

.netrc

Eine andere Methode ist, Ihren Benutzer/Passwort in ~/.netrc zu konfigurieren (_netrc unter Windows), e. g.

machine github.com
login USERNAME
password PASSWORD

OAuth

Verwenden Sie OAuth token Personal API token ), um die Änderungen zu pushen, z.B.

git push https://4UTHT0KEN@github.com/foo/bar

Verwandtes:

1
1
1
2016-06-05 12:21:50 +0000

Nach dem Benutzernamen zu fragen, ist ärgerlich für mich, aber nach einem Passwort zu fragen ist nett, da es sicherstellt, dass Sie wirklich mit Ihren Änderungen an die Öffentlichkeit gehen wollen…

Also füge ich dies einfach zu meiner “.gitconfig” hinzu

[url "https://myusername@github.com"]
    insteadOf = https://github.com
1
1
1
2016-04-05 14:31:43 +0000

Auch wenn Sie Windows benutzen, können Sie:

$ git config --global credential.helper wincred

benutzen. Sie müssen sich nur noch einmal anmelden und dann wird sich git daran erinnern.

0
0
0
2016-07-07 13:37:29 +0000

Verwenden Sie Git Credential Manager for Windows , wenn Sie unter Windows arbeiten.

Dieses Projekt umfasst :

  • Sichere Kennwortspeicherung im Windows-Berechtigungsnachweisspeicher
  • Unterstützung der Multi-Faktor-Authentifizierung für Visual Studio Team Services
  • Unterstützung der Zwei-Faktor-Authentifizierung für GitHub
  • Unterstützung der Generierung und Verwendung von Personal Access Token für Visual Studio Team Services und GitHub
  • - Unterstützung des nicht-interaktiven Modus für Visual Studio Team Services, unterstützt von Azure Directory
  • Kerberos-Authentifizierung für Team Foundation Server
  • Optionale Einstellungen für die Optimierung des Build-Agenten

Einfach die neueste Version herunterladen und installieren.

Benutzung

Sie tun es nicht. Es magisch funktioniert, wenn Anmeldeinformationen benötigt werden.