GnuPG資格情報をユーザーセッション全体にわたってキャッシュに保存します


53

GnuPGは、gpg-agent秘密鍵へのアクセスをキャッシュできます。ユーザーセッション全体でそのキャッシュをアクティブ保つにはどうすればよいですか?

のキーをロック解除するgpg-agentと、限られた時間だけキャッシュされたままになります。SSHのエージェントを使用して、パスフレーズを1回入力すると、セッション全体にわたってキャッシュされたままになります。から同じ動作が欲しいgpg-agent

そのため、ssh-agentキャッシュの有効期間が制限されることはありません。ただしgpg-agent、少なくともデフォルトでは、キャッシュの有効期間を制限します。からキャッシュ時間の制限削除するにはどうすればよいgpg-agentですか?

回答:


69

GnuPG 2まで

~/.gnupg/gpg-agent.conf)のユーザー構成では、デフォルトのキャッシュ期間と最大キャッシュ期間のみを定義できます。無効にすることはできません。

このdefault-cache-ttlオプションは、最後のGnuPGアクティビティ後のタイムアウト(秒単位)を設定し(使用するとリセットされます)、maximum-cache-ttlオプションはパスワードを入力した後にキャッシュするタイムスパン(秒単位)を設定します。デフォルト値は、600秒(10分)default-cache-ttlおよび7200秒(2時間)ですmaximum-cache-ttl

1年程度(たとえば、34560000秒(400日))に設定します。これで問題ありません。

default-cache-ttl 34560000
maximum-cache-ttl 34560000

ただし、この変更を有効にするには、gpg-agentを再起動してセッションを終了する必要があります。

セッションの長さを制限したい場合は、ログアウト時にデーモンを強制終了する必要があります。これはオペレーティングシステムによって大きく異なるため、異なるシステムのヒントを含む別の質問/回答を参照しています

gpg-agentログイン中に再起動することもできますが、これはキャッシュ時間をセッションの長さに制限するのではなく、ユーザーのログインを制限します。これが問題になる場合は、自分で決めてください。

GnuPG 2.1以降

GnuPG 2.1以降では、maximum-cache-ttlオプションは変更max-cache-ttlなしで名前が変更されました。


これは「求めていることを実行できない」応答ですか?セッションの長さの制限またはキャッシュ時間の制限について話しているため、明確ではありません。それとは正反対に、キャッシュ時間やセッションの長さにlength意的な制限はありません。
bignose

そのような場合は、かなり大きなttlを設定することでのみ回避策があります。1年程度に設定すると問題ありませんが、再起動してセッションを終了する必要がありgpg-agentます。
イェンスエラ

最新バージョン(少なくともgnupg 2.1)では、このmaximum-cache-ttlオプションは存在しないことに注意してください。正しいオプションを確認するには、公式ドキュメントを参照してください。gnupg.org
パブロオルモスデアギレラC. 14

3
少なくともGnuPG 2.1では、デフォルトdefault-cache-ttlは2時間ではなく600秒(10分)です。
-jlh

@jlhの異なるバージョンのmanページを見ると、gpg-agent正しい値はすべてのリリースで10分であるようです。私は答えを編集しました。これを指摘してくれてありがとう。
イェンスエラ

7

Windowsの場合

編集する必要があるファイルは、次の場所に配置する必要があります。 $env:AppData\gnupg

PowerShellウィンドウで実行すると開きます: C:\Users\<UserName>\AppData\Roaming\gnupg

gpg-agent.conf好きな値でファイルをそこに置いてください。

以下を実行することで、それがかかったことを確認できます。

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

この1つのライナーを使用することもできます。 Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"


ここでの2番目の回答が適切でない場合、これをWindowsでタグ付けされた独自の質問に移動できます。何が正しいかわからない:)
CubanX

感謝し、ここに保管してください-すべての情報を1か所にまとめておくと便利です。👍
barfuin

5

gpg-connect-agent reloadagent /bye設定を変更した後、必ずgpgエージェントをリロードしてください。

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