セキュリティを(わずかに)向上させるために、実行している作業に応じてロック解除キーの寿命をよりよく制御したいと思います。理想的には、対話型サブシェルを起動し、秘密に関連するすべての操作を実行し、サブシェルが終了するとロック解除されたキーを自動的に消去します。
以下を使用して、キャッシュされたパスワードフレーズを手動で消去できることを理解しています。gpg-connect-agent
しかし、私が知っている限り、各キーは明示的に指定する必要があります。別のオプションは、または--default-cache-ttl
オプションを使用して--max-cache-ttl
ソートキャッシュの有効期限を設定することです。gpg-agent
;しかし、通常、これは長いTTLを設定するか、同じパスワードを複数回要求することを意味します。
以前は、代替gpg-agent
ソケットパスを指定してデフォルトでスタンドアロンセッションを開始することは可能でしたが、最新バージョンでは変更できない固定パスを使用しているようです。
それでは、私が何を見逃しているのでしょうか?私が望むことを達成する方法はありますか?
答え1
完全な解決策はありませんが、解決策を見つけました。
--homedir
GnuPGは、パラメータまたは環境変数を介してGnuPGの代替ホームディレクトリを使用して、GNUPGHOME
他のキーストアファイルセットと関連するプロキシソケットパスを使用することを強制できます。これを念頭に置いて、新しいセッションでシェルを起動できますgpg-agent
。
gpg-agent \
--homedir /my/other/keys \
--default-cache-ttl 86400 \
--max-cache-ttl 86400 \
--daemon \
\
/bin/bash
指定されたTTLが経過すると(この場合は1日)、入力したすべてのパスワードは、新しいシェルの終了時に期限切れまたは「忘れられます」。これにより、親gpg-agent
インスタンスがそれ自体で終了します。
これが完全な解決策であるとは思わないのは、別々のキーリングを強制するからです。しかし、これは私の特定のユースケースに完全に機能していたので、もう調査しませんでした。
異なるインスタンス間のロックを維持するのに十分な注意を払っている場合は、デフォルトのGnuPGキーリングを持つシンボリックリンクを介して同じキーリングに対する独立セッションの全体的な効果を得ることができますgpg-agent
。読者に練習問題として残しておきます...