Verwendung von GnuPG und seines Daemon-GPG-Agenten

9

Ich verwende gpg-agent, um mein GnuPGPasswort beim Erstellen von Debian/UbuntuPaketen zu speichern und anzugeben. Aber ich bin immer noch verwirrt, wie es gpg-agentfunktioniert. Ich rufe an gpg-agentals:

eval $(gpg-agent --daemon)

Es funktioniert manchmal. Aber was mich stört ist, dass es manchmal nicht funktioniert. Dh manchmal fragt der GnuPGErstellungsprozess einmal nach meinen Passwörtern, manchmal nach keinem und manchmal oft. Dies alles geschieht während einer einzelnen Bash-Sitzung, nachdem ich gpg-agentwie zuvor aufgerufen habe . Wenn ich diesmal nicht nach dem Passwort gefragt werde, kann ich nicht garantieren, dass ich beim nächsten Mal nicht nach dem Passwort gefragt werde. Ich habe immer noch nicht herausgefunden, warum gpgich nach einem Passwort gefragt werde und warum nicht.

Passiert es dir auch?

Vielen Dank

xpt
quelle
1
Sie müssen einige Zeit aufwenden, um herauszufinden, unter welchen Umständen dies fehlschlägt und unter welchen Umständen es erfolgreich ist. Wenn Sie beschreiben können, was zuverlässig mit dem Fehler zusammenhängt, ist es wahrscheinlicher, dass jemand anderes an eine Lösung denkt.
Bignose
In Emacs habe .authinfo.gpgich für GNUS und einen Hinweis zur Verwendung erhalten gpg2, der gpg-agentdamit verbunden ist. Also (setq epg-gpg-program "/usr/bin/gpg2")für mich gearbeitet. Möglicherweise müssen Sie herausfinden, bei welchen Ihrer Anwendungen das Problem auftritt. Möglicherweise bevorzugen sie gpg(1).
Brady Trainor

Antworten:

7

Informationen zur ordnungsgemäßen Verwendung finden Sie gpg-agentunter http://tr.opensuse.org/SDB:Using_gpg-agent

Danach gpg-agentspeichert mein Daemon meine GnuPGPasswörter jetzt ordnungsgemäß zwischen. An meinem Setup war nichts auszusetzen, nur dass ich nicht wusste, wie ich testen sollte, ob meine GnuPGPasswörter ordnungsgemäß zwischengespeichert werden oder nicht.

Jetzt mache ich:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

Von der Site: "Ersetzen Sie 0xMYKEYID durch Ihre GnuPG-Schlüssel-ID. Während Sie diesen Befehl ausführen, sollte der Agent zweimal ein grafisches Kennwortdialogfeld öffnen: zuerst zum Signieren oder Verschlüsseln (gpg -ase) (gpg -ase), dann zur Entschlüsselung oder Signaturprüfung ( | gpg) Von nun an wird jedes Mal, wenn GnuPG verwendet wird (entweder über die Befehlszeile oder eingebettet in ein grafisches Programm wie KMail), das Passwort des gpg-Agenten automatisch übergeben (bis das Zeitlimit abläuft oder die grafische Oberfläche angezeigt wird) geschlossen)."

Und um das Ablaufen des Cachings zu vermeiden, habe ich jetzt eine extrem lange Zeitüberschreitung festgelegt:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000
xpt
quelle
Laut linux.die.net/man/1/gpg-agent können Sie --write-env-file "${HOME}/.gpg-agent-info"beim Starten von gpg-agent auch hinzufügen und dann if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi zu Ihrer .bashrc hinzufügen , um festzustellen, ob der Agent bereits ausgeführt wird. Scheint eine etwas sauberere Lösung zu sein.
Sean the Bean
@SeantheBean, ausgezeichnet. Ich werde es testen und mich bei Ihnen
melden
WARNING: "--write-env-file" is an obsolete option - it has no effectda zumindest Apr 4 '16. Ref: serverfault.com/a/481174
xpt