Konfigurieren Sie git, um mit Timeout nur einmal nach dem Passwort zu fragen

Wenn ich git pull oder git push ausführe, werde ich immer nach einem Passwort gefragt.

Ich habe auf Rackspeed ein öffentliches/privates Schlüsselpaar generiert.

Ich habe mein Projekt in Bitbucket geöffnet: Einstellungen - > Allgemein - > Zugriffsschlüssel und fügte meinen öffentlichen Schlüssel hinzu.

Dann habe ich git wie konfiguriert, hier gesehen, so dass es sich das Passwort für 600 Sekunden merkt.

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

Ich habe sichergestellt, dass meine Git-URL nicht https ist:

origin  [email protected]:company/example.git (fetch)
origin  [email protected]:company/example.git (push)

Dann habe ich git pull ausgeführt. Es fragte für das Passwort zum ersten Mal. Dann habe ich git pull erneut ausgeführt, aber es wird immer noch nach dem Passwort gefragt.

Author: Black, 2020-01-31

3 answers

Da Sie eine SSH-Fernbedienung verwenden, werden Sie von OpenSSH zur Eingabe Ihres Passworts aufgefordert, nicht von Git. Git behandelt keine Passwörter für OpenSSH (da dies nicht trivial ist), sodass die Konfiguration der Anmeldeinformationshelfer von Git keine Auswirkungen hat.

Wenn Sie die Credential-Helfer von Git verwenden möchten, müssen Sie eine HTTPS-Fernbedienung verwenden.

Alternativ können Sie das Passwort mit dem Programm ssh-agent speichern. Sie können eval $(ssh-agent -s) in Ihrer Shell ausführen und dann ssh-add ausführen, um den Schlüssel hinzuzufügen. Du wirst sein einmal nach Ihrer Passphrase gefragt, aber nicht wieder in diesem Terminal.

Es ist möglich, dass Ihre Umgebung bereits einen SSH-Agenten für Sie eingerichtet hat. Sie können env | grep SSH_AUTH_SOCK und wenn es etwas ausgibt, können Sie einfach ssh-add und müssen nicht den ersten Befehl ausführen.

 3
Author: bk2204,
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-02-04 01:40:46

Lassen Sie Git den Benutzernamen und das Passwort speichern und es wird niemals danach gefragt.

 git config --global credential.helper store

Speichern Sie den Benutzernamen und das Passwort für eine Sitzung (zwischenspeichern):

git config --global credential.helper cache

Sie können auch ein Timeout für die obige Einstellung festlegen:

git config --global credential.helper 'cache --timeout=600'
 1
Author: Sultanmyrza Kasymbekov,
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-12-14 16:59:42

Versuchen Sie, dies auf dem Terminal zu verwenden, um Ihre Anmeldeinformationen zu speichern:

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>

Git fragt bei git push oder git pull nicht erneut nach dem Passwort.

Lesen Sie auch: git help credentials

 -1
Author: Wasif Hasan,
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-01-31 09:05:19