pinentry-curses
をemacsで動作させることに問題があることを理解しています( http://emacswiki.org/emacs/EasyPG に関するコメントの一部を参照)。このため、ターミナルはgpg-agentと互換性がありません。
この場合、リモートマシンへのssh接続を介しているため、グラフィカルなピン入力ツールを使用できません。
ただし、事前にgpg-agentにパスフレーズを入力してから、emacsにこれを使用させることはできますが、エージェントがこの情報をまだ持っていない場合はパスフレーズの入力を求めることはできませんか?
これをnotmuch.el
およびEasyPG
で機能させるには、どのような設定が必要ですか?
または、同じ効果を達成するが、セキュリティの問題がある可能性があるパスフレーズをキャッシュする代替方法はありますか(これがgpg-agentが最初に存在する理由です)?
この! -> https://github.com/ecraven/pinentry-emacs
あなたはいくつかのレンチをしなければならないでしょう、しかしこれを使うことは私のために働きました。スクリプトをPATH
のディレクトリに配置し、次のエントリを~/.gnupg/gpg-agent.conf
に追加します。
pinentry-program <path-to-pinentry-emacs>/pinentry-emacs
次に、エージェントをリロードします。
$ echo RELOADAGENT | gpg-connect-agent
私にとっては夢のように機能します:)
別の方法として、かなり最近のpinentry/gpg2(Arch Linuxでそれぞれ0.9.7と2.1.11でテスト済み)がある場合は、 http://elpa.gnu.org/packages/pinentry.html)を使用することです。 。
M-x list-packages
からpinentry
をインストールしてから、
allow-emacs-pinentry
.gnupg/gpg-agent.conf
に入れて
(setenv "INSIDE_EMACS" (format "%s,comint" emacs-version))
(pinentry-start)
.emacs.d/init.el
で。 M-x Shell
を実行するとINSIDE_EMACSが設定されますが、単に.gpg
ファイルを開くと設定されないため、setenvをそこに配置する必要がありました。
これで、gpg-agentはターミナルから通常のcursesバージョンを使用し、Emacs内からはread-passwd
(プロンプトとview-lossage
から文字を非表示にします)を使用します。
編集:DebianパッケージにはEmacsサポートを削除するパッチがあるようです。したがって、今のところ、このソリューションは、pinentryを自分でコンパイルする準備ができている他のディストリビューション/人々に対してのみ機能します。