* .gpgファイルの読み取り/保存時に入力するパスフレーズをキャッシュするようにgpg-agentを取得するにはどうすればよいですか?


9

gpgEmacsを使用して-encryptedファイルを操作し、Emacsセッションごとに一度だけ、各暗号化ファイルのパスフレーズを入力できるようにしたいと考えています。

以前は変数epa-file-cache-passphrase-for-symmetric-encryptiontに設定してこれを行うことができましたが、これは機能しなくなりました。説明は、変数のドキュメントの最後の行にありますepa-file-cache-passphrase-for-symmetric-encryption

(defcustom epa-file-cache-passphrase-for-symmetric-encryption nil
  "If non-nil, cache passphrase for symmetric encryption.

For security reasons, this option is turned off by default and
not recommended to use.  Instead, consider using gpg-agent which
does the same job in a safer way.  See Info node `(epa) Caching
Passphrases' for more information.

Note that this option has no effect if you use GnuPG 2.0."
  :type 'boolean
  :group 'epa-file)

最近のシステムアップデート後、gpg私のシステムのはバージョン2.1.8になり、epa-file-cache-passphrase-for-symmetric-encryption効果がなくなりました。

上記のドキュメントで言及されている参照は、を使用するようgpg-agentに指示するだけのページにつながりますが、その方法については何も述べていません。gpg-agentこの投稿の冒頭で説明したユースケースの設定方法に関する明確な指示を見つけることができませんでした。任意の助けいただければ幸いです。

FWIW、psそれ/usr/bin/gpg-agent --supervisedは確かに動いていると私に話します。*.gpgファイルを操作するときに入力したパスフレーズをキャッシュするために、他に何が必要ですか?

また、私のepg-gpg-program変数の値はです/usr/bin/gpg。これは、gpg前述のインストール済みバージョン2.1.8インスタンスを参照します。

私が使用しているEmacsのバージョンは26.0.50と27.0.50です。どちらの場合も、epaパッケージのバージョンは23.1です。


この回答pinentryごとにパッケージを使用できます:
Felipe Lema

@FelipeLema:変更されたpinentryを使用して、ファイルを開くときにパスワードが復号化のために保存されるようにしましたが、保存中にパスワードを2回入力して暗号化する必要があります。:-(
ヴァイデンリンデ

回答:


4

https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options

このドキュメントでは、あなたが興味を持つかもしれないオプション

  • default-cache-ttl n、キャッシュエントリが有効な時間をn秒に設定します。デフォルトは600秒です。キャッシュエントリがアクセスされるたびに、エントリのタイマーがリセットされます。エントリの最大有効期間を設定するには、max-cache-ttlを使用します。キャッシュされたパスフレーズは、クライアントがキャッシュ操作を要求しない場合、メモリからすぐに削除されない場合があることに注意してください。これは、数秒ごとにのみ実行される内部のハウスキーピング機能が原因です。
  • max-cache-ttl nキャッシュエントリが有効な最大時間をn秒に設定します。この時間が経過すると、キャッシュエントリは、最近アクセスされたか、gpg-preset-passphraseを使用して設定されていても、期限切れになります。デフォルトは2時間(7200秒)です。

これは設定ファイル〜/ .gnupg / gpg-agent.confで設定できます

例えば: default-cache-ttl 86400

gpg-agentはセッション全体のパスワードのキャッシュをサポートしていないようです


おかげで、これは私にはうまくいきません。(長いキャッシュ時間で)再構成して再起動gpg-agentした後でも、ファイルを保存しようとするたびに、パスフレーズ(2回)の入力を求められ*.gpgます。
kjo 2018年

端末で復号化するときにキャッシュが機能するかどうかを確認できますか?
junnu 2018年

Emacs内とターミナルの両方からを復号化するときに、キャッシュは機能します。ファイルを保存しようとすると、問題が発生し*.gpgます(ファイルに変更を加えた後)。次に、パスフレーズの入力を常に2回求められます。(ちなみに、これは比較的新しい動作です。以前はEmacsからの復号化と暗号化の両方でキャッシングが機能していたケースでした。)同様に--symmetric、端末からのものを暗号化しようとすると、キャッシングが機能しません。
kjo 2018年

あなたの答えが私の問題を解決しなかったので、私はここで賞金を授与することに消極的です、そして、いずれにしても、それは私が期待したほど詳細ではありませんでした。
kjo 2018年

わかりました。問題はありません。対称暗号化にキャッシュされたパスワードを使用するためのgpg-agentについてのドキュメントは見つかりませんでした。こことreddit.com/r/emacs/comments/5skzsu/…「GnuPG 2 (開発者およびEPA / EPG開発者が意図的に)キャッシュパスフレーズをサポートしていません。GnuPG1をインストールしてください。これは、Emacsのバージョンとは関係ありません。」あなたがEmacsの側からキャッシング伴う可能性のある他の解決策を試みることができる、可能な場合が、何のマニュアルの参照は..ここに述べられていない
junnu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.