2016-07-14 7 views
7

Git bittet mich immer, eine Passphrase einzugeben, um meinen geheimen Schlüssel zu entsperren, während ich einen Commit unterzeichne.Verhindern, dass git beim Signieren eines Commits nach dem GnuPG-Passwort fragt

git commit -S -m 'message' 

Wie kann ich speichern das Kennwort im Cache, so dass ich muss es jedes Mal nicht eingeben, während die

+2

Sie können 'gpg-agent' einrichten und die Option' default-cache-ttl' zusammen mit 'max-cache-ttl' konfigurieren, um Ihr Passwort zwischenzuspeichern. – miqid

+0

Ich suche nach einer Möglichkeit, es mit Git zu tun. Wie Git Passwort Caching. – pokemon

Antwort

8

begehen Unterzeichnung Git nie halten das Passwort GnuPG wird. Sie müssen sich auf die Funktionen von GnuPG zur Zwischenspeicherung von Passphrasen verlassen, die durch erfolgt, die einfach durch Bearbeiten von ~/.gnupg/gpg-agent.conf (versteckt in Ihrem Ordner AppData in Windows) eingerichtet werden können.

Setzen Sie default-cache-ttl auf die Anzahl der Sekunden, die die Passphrase nach jedem Aufruf von GnuPG zwischengespeichert wird. maximum-cache-ttl legt die Zeit fest, nach der die Passphrase eingegeben wurde, bei der der Cache gelöscht wird. Stellen Sie sicher, dass ignore-cache-for-signing nicht gesetzt ist - sonst wird GnuPG den Cache für Signiervorgänge ignorieren.

Wenn Sie Commits ohne Benutzerinteraktion signieren möchten, können Sie den Cache über gpg-preset-passphrase vorfüllen, oft versteckt an einem Ort wie /usr/lib/gnupg2/gpg-preset-passphrase; oder durch Ausführen einer beliebigen Entschlüsselungs- oder Signieroperation. Sie können git auch so konfigurieren, dass eine Option wie --passphrase [your passphrase] an gpg übergeben wird, lesen Sie aber die Einschränkungen und Sicherheitsimplikationen dieses Ansatzes (es beinhaltet, dass Ihre Passphrase irgendwo im Klartext gespeichert wird).

+0

Ich habe keine '~/.gnupg/gpg-agent.conf', stattdessen habe ich' ~/.gnupg/gpg.conf', ist es in Ordnung, 'default-cache-ttl' darin zu setzen? – pokemon

+0

Nein, diese Optionen sind explizit für 'gpg-agent.conf'. Haben Sie 'gpg-agent' installiert (' welcher gpg-agent' sollte einen Eintrag auflisten)? Andernfalls erstellen Sie einfach eine neue Datei und richten Sie diese Optionen ein. –

+0

Ja, ich habe gpg-agent installiert, aber es funktioniert nicht, weder in der Datei gpg-agent.conf, noch in der gpg.conf. Übrigens benutze ich Ubuntu gnome 16.04, bist du sicher, dass diese Methode funktioniert? – pokemon

-4

Wenn Sie nicht wirklich wollen, oder melden Sie müssen jeden begehen, können Sie Unterzeichnung standardmäßig ausschalten, indem Sie:

git config --global commit.gpgsign false 

Wenn Sie dann ein Commit anmelden möchten, können Sie dies tun, die unter Verwendung von -S Flagge. So ..

git commit -S -m your commit message 

Einfach mein Leben einfacher gemacht!

+0

und glauben Sie, dass dies die Frage beantworten kann, nach der OP gefragt hat? –

+0

Dies bietet keine Antwort auf die Frage. Sobald Sie genug [Reputation] (https://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (https://stackoverflow.com/help/privileges/comment); Stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (https://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/17806364) –

Verwandte Themen