2.1.15でgpg-preset-passphraseを使用してpinentry経由で入力されたパスフレーズをキャッシュするために必要な手順は何ですか?


8

無人マシンで使用するためにパスフレーズをキャッシュしたいと考えています。これを行うといくつかのリスクが発生するため、キャッシュするパスフレーズを選択し、両方default-cache-ttlを設定したりmax-cache-ttl、不愉快に高い値を設定したりしないようにし、gpg-agent定期的にキャッシュ全体をクリアする必要がないようにしたいので、で解決策を探していますgpg-preset-passphrase。トラブルシューティング中に見つけた情報の一部はGnuPGの古いバージョンを参照しているため、すべての違いを十分に考慮していたかどうかはわかりません。

まず、で規定されman 1 gpg-agentているようexport GPG_TTY=$(tty)に、.bashrcにあります。

ここで、eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)gpg-agentを起動するために実行するとします。gpg-preset-passphraseが--max-cache-ttl(デフォルトは2時間)を引き続き尊重していることに注意してください。

次に$KEYGRIP、で目的の秘密サブキーのキーグリップを取得しgpg --with-keygrip -Kます。

それで私は試し/path/to/gpg-preset-passphrase -c $KEYGRIPます。リターンを押すと、これは次のように出力します:

   gpg-preset-passphrase: caching passphrase failed: Not implemented

に再度追加しようとする--verbose --debug 6 --log-file /path/to/gpg-agent.loggpg-agent、私のログに

   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

ソースから深く掘り下げる以外に、これからどこに進むべきかわからないので、私が取っている手順を誰かが最初に修正できるかどうか疑問に思っています。


これを解決したことがありますか?
AlMehdi 2017

パスフレーズをstdin of gpg-preset-passphraseに送信する必要があることはわずかですが、私の最初の具体的なリードは、このメーリングリストlist.gnupg.org/pipermail/gnupg-users/2010-January/037876.html
ThorSummoner

エコーの代わりに標準入力から送信する方法は?これはまったく安全に聞こえません
ホルム

回答:



0

パスフレーズをエコーせずgpg-preset-passphraseover stdin に送信したいようです(プロセスリストでの公開を避けるため)。

/path/to/gpg-preset-passphrase -c $KEYGRIP <<< $PASSPHRASE

bash外での移植性を気にする場合:

/path/to/gpg-preset-passphrase -c $KEYGRIP <<EOF
$PASSPHRASE
EOF

"Here Documents"構文(EOF)に関するこの回答は私にとって非常に貴重でした:https : //unix.stackexchange.com/a/88492

あなたもホルムで述べたようallow-preset-passphraseにあなたの中に必要があります~/.gnupg/gpg-agent.conf

対称暗号化でこれを行うことを検討している場合(私はすでにこれに正気を失っているため、おそらくそうする必要がないかもしれません)、gpg-エージェント:https : //superuser.com/a/1485486/1093343

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.