web-dev-qa-db-ja.com

gpg-agentにパスワードを忘れさせる

私はubuntu12.04でgpg1.4.11とgpg-agent2.0.17を使用し、Thunderbird用のEnigmailアドオンを使用しています。暗号化された電子メールを開くと、Enigmailは関連するpinentryプログラムでgpg-agentを呼び出し、パスワードを要求します。次に、キャッシュされたパスワードの有効期間を設定するオプションがあり、通常はセッションの終了に設定されます。

セッションをシャットダウンしたりログアウトしたりすることはめったにないので、セッションをロックすると、gpg-agentにすべてのキャッシュされたパスワードを忘れさせます。その方法を探しましたが、gpg-agentのマンページには、-SIGHUPがすべてのパスワードをフラッシュすると記載されていますが、マンページとは異なり、キャッシュされたパスワードは忘れられません。

Gpg-agentにパスワードを忘れさせる方法についてのアイデアはありますか?

11
Lars

gpgconf --reload gpg-agentは、エージェントがメモリにキャッシュしたパスワードを忘れるように強制する1つの方法です。現在(gpg 2.0-2.1)これはpkill -HUP gpg-agentと[ほぼ]同等です。理論的には複数のエージェントを実行でき、pkillがそれらすべてにSIGHUPを配信しようとするため、「ほぼ同等」と言います。

8
Juan

私は単純なものを使用します:

echo RELOADAGENT | gpg-connect-agent

チャームとして働く。

-

編集済み:Debian 10gpg 2.2.12libgcrypt 1.8.4でテスト済み

4
Dr Beco

キャッシュパスワードのTTLは、gpg-agentのオプションによって制御されます。

--default-cache-ttl n
  Set the time a cache entry is valid to n seconds.  The default is 600 seconds.

--max-cache-ttl n
  Set  the  maximum time a cache entry is valid to n seconds.  After
  this time a cache entry will be expired even if it has been accessed
  recently.  The default is 2 hours (7200 seconds).

このオンデマンドを制御する方法として、画面のロック時にコマンドをトリガーできる場合は、 keychain を使用してgpg-agentを処理して実行できます。

keychain --clear --agents gpg

これはgpg-agentのすべてのマネージドインスタンスを強制終了します。ただし、画面のロックを解除したときにkeychain --agents gpg --eval $gpgを実行する方法が必要です。多分面倒すぎる。

4
dawud

gpg-connect-agent reloadagent /bye

0
wisbucky

これは、単一のパスワード(つまりパスフレーズ)をクリアする際に私のために働いたものです-ターミナルから実行します-すべてをクリアしたい場合は https://superuser.com/a/1269901/457084

gpg-connect-agent "clear_passphrase --mode=normal <cacheid>" /bye

どこ <cacheid>は、次のコマンドを実行した場合に使用できるキーグリップである可能性があります。gpg --list-keys --with-keygrip

<path to pubring.kbx>
------------------------------------------------
pub   rsa2048 2017-12-11 [SC] [expires: 2019-12-11]
    <keyid>
    Keygrip = <keygrip>
uid          `<email>

https://web.archive.org/web/20180528210236/https://demu.red/blog/2016/06/how-to-check-if-your-gpg-からの少しの助けを借りてkey-is-in-cache /

0
Ben Creasy

GnuPG 2.2.19(Solus 4.1、Nitrokey Smart、ストレージ用のgnukトークン)では、他のどの回答も機能しませんでした。 gpg-agentが1つだけ実行されていることを確認しており、適切な場合はOKで応答します。
私がやったことは:

killall gpg-agent

上記の暗号化ファイルを復号化してパスワードを本当に忘れてしまった場合は、常にテストする必要があります(gpg -d < somefile.gpg

0
Anthon