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 zum Festlegen Ihrer E-Mail in Git ausprobiert, nämlich das Einrichten der Git-Variablen github.Benutzer-und github.token, aber das machte keinen Unterschied.

Ich verstehe nicht, warum das passiert.

Author: random, 2010-10-14

13 answers

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

 34
Author: Benjamin Bannier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 11:33:51

Hatte heute ein ähnliches Problem: Ich habe die Dinge in meiner Arbeitskopie durcheinander gebracht, also habe ich beschlossen, das Verzeichnis umzubenennen und mein Projekt erneut von Github zu klonen. Aber danach musste ich mein Passwort eingeben, um eine Pull/Push-Anfrage zu stellen, anstatt die Passphrase nur einmal wie früher einzugeben.

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

Und sieh dir die Zeile an, die mit 'remote.Herkunft.url'.

Um Protokolle zu wechseln:

git config remote.origin.url [email protected]:the_repository_username/your_project.git

the_repository_username und your_project sollte durch den entsprechenden Repository-Namen und den Eigentümer dieses Repositorys ersetzt werden. Der Benutzername gehört Ihnen, wenn Sie das Repository besitzen, oder der Benutzername des Repository-Besitzers andernfalls.

 218
Author: Sergio Morstabilini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-06-15 15:56:22

Wenn Sie HTTPS anstelle von SSH verwenden, können Sie Folgendes tun:

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

    git config -l
    

    Danke an Sergio Morstabilini

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

  3. Führen Sie diesen Befehl aus :

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    
 34
Author: Eray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-12-03 22:40:15

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 wie folgt nach Github-Fernbedienungen fragt:

git config --global url."https://[email protected]".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'

Wobei 28800 8 Stunden sind. 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://[email protected]"]
    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

 31
Author: stefanmaric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-10-01 18:33:44

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

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
 7
Author: Daenyth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-14 19:45:54

Wenn Sie jedes Mal nach Ihrem Passwort gefragt werden möchten, aber nicht nach Ihrem Benutzernamen, konfigurieren Sie die Fernbedienung als HTTPS mit einem Benutzernamen.. Wie das hier..

git config remote.origin.url https://[email protected]/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.

 7
Author: David Jeske,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-12-19 07:28:15

Wenn Sie unter Windows HTTPS verwenden, versuchen Sie es mit dem Git Credential Store - er verwendet den Windows Credential Store, um Ihren Namen und Ihr Passwort 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 Passwort eingeben, werden sie für Sie gespeichert.

 7
Author: Brian Burns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-02-23 11:54:29

Die Dinge sind ein wenig anders, wenn Sie 2-Faktor-Auth verwenden, wie ich bin. Da ich anderswo keine gute Antwort gefunden habe, bleibe ich hier, damit ich sie vielleicht später finden kann.

Wenn Sie die 2-Faktor-Authentifizierung verwenden, funktioniert die Angabe von Benutzername/Passwort nicht immer - Sie erhalten Zugriff verweigert. Sie können jedoch ein Anwendungszugriffstoken verwenden und den credential Helper von git verwenden, um dies für Sie zwischenzuspeichern. Hier sind die relevanten links:

Und ich erinnere mich nicht, wo ich das gesehen habe, aber wenn Sie nach Ihrem Benutzernamen gefragt werden, kleben Sie dort das Anwendungszugriffstoken. Dann lassen Sie das Passwort leer. Funktionierte auf meinem mac.

 2
Author: John Berryman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-09-25 19:45:49

Benutze SSH

Um zu verhindern, dass GitHub beim Drücken nach dem Passwort fragt, sollten Sie idealerweise SSH verwenden ([email protected]:...) anstelle der HTTPS-URL (https://github.com/...) und fügen Sie Ihren SSH-Schlüssel zu Ihrem GitHub-Konto hinzu. Siehe: Welche Remote-URL sollte ich verwenden?

GitHub-Clone mit SSH

Ein 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 mitzuteilen so merken Sie sich Ihren GitHub-Benutzernamen und Ihr Passwort jedes Mal, wenn er mit GitHub spricht.

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

.netrc

Eine andere Methode ist die Verwendung Konfigurieren Sie Ihren Benutzer / Passwort in ~/.netrc (_netrc unter Windows), z.B.

machine github.com
login USERNAME
password PASSWORD

OAuth

Verwenden Sie OAuth-Token (Persönliches API-Token) zum Verschieben der Änderungen, z.B.

git push https://[email protected]/foo/bar

Verwandte:

 2
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 11:33:51

Auch wenn Sie Windows verwenden, können Sie Folgendes verwenden:

$ git config --global credential.helper wincred

Du musst dich nur noch einmal anmelden und dann wird sich git daran erinnern.

 1
Author: William Earl Cheaqui,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-19 21:10:43

Das Fragen nach dem Benutzernamen ist für mich ärgerlich, aber das Fragen nach einem Passwort ist nett, da es sicherstellt, dass Sie mit Ihren Änderungen wirklich an die Öffentlichkeit gehen möchten...

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

[url "https://[email protected]"]
    insteadOf = https://github.com
 1
Author: ViToni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-08 17:47:40

Verwenden Sie Git Credential Manager für Windows, wenn Sie unter Windows sind.

Dieses Projekt beinhaltet:

  • Sichere Passwortspeicherung im Windows Credential Store
  • Multi-Faktor-Authentifizierungsunterstützung für Visual Studio Team Services
  • Zwei-Faktor-Authentifizierungsunterstützung für GitHub
  • Unterstützung für die Generierung und Verwendung persönlicher Zugriffstoken für Visual Studio Team Services und GitHub
  • Nicht-interaktive modus unterstützung für Visuelle Studio Team Services unterstützt von Azure Directory
  • Kerberos-Authentifizierung für Team Foundation Server
  • Optionale Einstellungen für den build-agent optimization

Laden Sie einfach die neueste Version herunter und installieren Sie sie.

Wie benutzt man

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

 0
Author: Jalal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Das hat bei mir funktioniert.

Führen Sie den Befehl mit der folgenden Syntax aus.

git config remote.origin.url https://<<username>>@<<.git url>>
 0
Author: Sushanta Meher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-09-18 07:14:42