emacsは端末でgpg-agentを使用できますか?

emacsは端末でgpg-agentを使用できますか?

pinentry-cursesEmacsの使用に問題があることを知っています(いくつかのコメントを参照)。http://emacswiki.org/emacs/EasyPG)ので、端末でemacsを使用することはgpg-agentと互換性がありません。

この場合、SSHを介してリモートシステムに接続されているため、グラフィックpinentryツールは使用できません。

しかし、事前にgpg-agentにパスワードを提供してからemacsにそれを使用させることができますが、エージェントがまだこの情報を持っていない場合、パスワードの入力を求められませんか?

notmuch.elとで使用できる設定は何ですかEasyPG

あるいは、同じ効果を達成しますが、セキュリティ上の問題がある可能性があるパスワードフレーズをキャッシュする代替方法はありますか(これが最初にgpg-agentが存在する理由です)。

答え1

これ! ->https://github.com/ecraven/pinentry-emacs

少しねじる必要がありますが、この方法を使用することは私にとって効果的でした。スクリプトをディレクトリに配置し、PATH次のエントリを追加します~/.gnupg/gpg-agent.conf

pinentry-program <path-to-pinentry-emacs>/pinentry-emacs

その後、エージェントを再ロードします。

$ echo RELOADAGENT | gpg-connect-agent

夢だけだと思います:)

答え2

かなり新しいpinentry / gpg2(それぞれ0.9.7と2.1.11のArch Linuxでテストされています)がある場合、もう1つのオプションは次のことです。http://elpa.gnu.org/packages/pinentry.html

pinentry設置M-x list-packages後の場所

allow-emacs-pinentry

あなた.gnupg/gpg-agent.confと入れて

(setenv "INSIDE_EMACS" (format "%s,comint" emacs-version))
(pinentry-start)

あなたの.emacs.d/init.el。 INSIDE_EMACSは実行時に設定されますが、M-x shell単にファイルを開くときに設定されていないため、setenvをそこに置く必要がありました.gpg

gpg-agentは端末とEmacs read-passwd(プロンプトとEmacsから文字を隠すview-lossage)で通常の呪いバージョンを使用します。


編集:Emacsのサポートを削除するためのDebianパッケージ用のパッチがあるようです。現在、このソリューションはpinentry独自のコンパイルを準備する他のディストリビューション/人にのみ適しています。

答え3

pinentry-mode loopback~/.gnupg/gpg.conf2021年には、gpg-agentの設定と使用allow-loopback-entry後の設定を使用することができます。~/.gnupg/gpg-agent.conf

関連情報