Ich versuche, Passphrasen für die Verwendung auf einem unbeaufsichtigten Computer zwischenzuspeichern. Da dies ein gewisses Risiko darstellt, würde ich es vorziehen, zu wählen, welche Passphrasen zwischengespeichert werden, und zu vermeiden, beide default-cache-ttl
und max-cache-ttl
unangenehm hohe Werte festzulegen sowie zu vermeiden, dass der gpg-agent
gesamte Cache regelmäßig gelöscht werden muss - daher suche ich nach einer Lösung mit gpg-preset-passphrase
. Einige der Informationen, die ich bei der Fehlerbehebung gefunden habe, beziehen sich auf ältere Versionen von GnuPG, daher bin ich mir nicht sicher, ob ich alle Unterschiede ausreichend berücksichtigt habe.
Erstens habe man 1 gpg-agent
ich , wie von vorgeschrieben , export GPG_TTY=$(tty)
in meinem .bashrc.
Angenommen, ich starteeval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)
, um gpg-agent zu starten, und stelle fest, dass die gpg-voreingestellte Passphrase immer noch --max-cache-ttl berücksichtigt (Standard 2 Stunden).
Ich bekomme dann den Schlüsselgriff $KEYGRIP
des gewünschten geheimen Unterschlüssels mit gpg --with-keygrip -K
.
Damit versuche ich es /path/to/gpg-preset-passphrase -c $KEYGRIP
. Bei der Rückkehr wird Folgendes gedruckt:
gpg-preset-passphrase: caching passphrase failed: Not implemented
Beim erneuten Versuch, etwas hinzuzufügen --verbose --debug 6 --log-file /path/to/gpg-agent.log
, gpg-agent
wird mein Protokoll angehängt
gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent
gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started
gpg-agent[4207] command PRESET_PASSPHRASE failed: Not implemented
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 terminated
Ich bin mir nicht sicher, wo ich vorgehen soll, abgesehen davon, dass ich tiefer in die Quelle eintauche. Deshalb frage ich mich, ob jemand zuerst die Schritte korrigieren kann, die ich unternehme.
gpg-preset-passphrase
muss. Mein erster konkreter Hinweis dazuAntworten:
Ich habe auch dieses Problem und habe es durch Hinzufügen einer Konfiguration zu gpg-agent gelöst. Sie finden es hier:
/programming/49491679/how-to-enter-gnupg-agent-key-passhprase-from-cli
quelle
Es hört sich so an, als ob Sie die Passphrase an
gpg-preset-passphrase
over stdin senden möchten , ohne sie zu wiederholen (um zu vermeiden, dass sie in der Prozessliste angezeigt wird):Wenn Sie sich für die Portabilität außerhalb von Bash interessieren:
Diese Antwort zur Syntax "Here Documents" (EOF) war für mich von unschätzbarem Wert: https://unix.stackexchange.com/a/88492
Sie brauchen auch
allow-preset-passphrase
in Ihrem~/.gnupg/gpg-agent.conf
wie von Holms erwähnt.Wenn Sie dies mit symmetrischer Verschlüsselung tun möchten (da ich bereits meinen Verstand verloren habe, müssen Sie dies möglicherweise nicht tun), lesen Sie meine Antwort hier, um den richtigen Schlüsselgriff / Cacheid zu finden, mit dem die Passphrase in gpg- voreingestellt werden kann. Agent: https://superuser.com/a/1485486/1093343
quelle