5

我正在尝试在 emacs 中使用 epa 模式和 org 模式,如本文所述

我使用屏幕会话和 ssh 连接到计算机。因此,我需要更改 /usr/bin/pinentry 以将 /usr/bin/pinentry-curses 指向 /usr/bin/pinentry-gtk-2。

我有

pinentry-program /usr/bin/pinentry-curses 

作为我的 .gnupg/gpg.conf 中的最后一行。当我尝试保存文件时,我看到了这个菜单:

Select recipients for encryption.
If no one is selected, symmetric encryption will be performed.
- `m' to mark a key on the line
- `u' to unmark a key on the line
[Cancel][OK]

我选择“确定”但只得到

Opening output file: Encrypt failed, Exit

我没有提示输入密码,也没有给出其他输出。它不会提示输入密码。它甚至没有将我的 gpg 'user' 列为 foo@bar.com。

但是,当 .gnupg/gpg.conf 文件中不存在该行时,我确实会在“选择加密的收件人”对话框中看到我的 gpg“用户”。但是,cpu 与以下消息挂钩:

Encrypting /home/user/test.gpg...

(我假设它正在尝试生成 gtk 窗口并绕圈运行)

我有点困惑为什么我需要将 /usr/bin/pinentry 链接到 /usr/bin/pinentry-curses 并在我的 gpg.conf 文件中包含该行。

在 /usr/bin/pinentry 链接到 /usr/bin/pinentry-gtk-2 之前,如果我在本地计算机上,我会得到“选择收件人加密”提示,并列出我的 gpg 用户。我会得到一个对话框来输入我的密码,这一切都奏效了。我会得到

Encrypting /home/user/test.gpg...

这一切都会成功。

我在一个截至今天早上是最新的 Arch 系统上运行 GNU Emacs 24.2.1。

我很好奇我做错了什么。我已经查看了 arch wiki 上有关 pinentry 和 gpg 的文章,但它们并没有帮助解决问题。提前致谢。

更新:26-10-2012 今天早上对 cryptsetup 软件包的更新似乎影响了行为。现在,当我打开一个 .gpg 文件时,我会收到“请输入密码”提示,但它似乎永远不会过去。输入我的密码后,提示永远不会消失。

4

2 回答 2

0

如果此提示来自 pinentry-curses,您可以尝试:1.输入密码(可能后面没有回车,请尝试),2.按tab键,3.按两次回车键。

原因是您看不到 pinentry-curses 呈现的整个形式。也许尝试在 emacs 之外尝试 pinentry-curses(并输入命令 GETPIN)来理解上面建议的盲导航。如果您在 emacs(终端或 tmux 中)中使用 Mew 邮件客户端(和 gpg),也会存在类似的问题。

任何人都知道如何将 pinentry-curses 对话框强制为适合 emacs 的一行?

于 2014-02-14T08:26:34.630 回答
0

有两种主要方法,但它们的有效性可能会因使用的 GPG 版本而异。此答案适用于当前的现代分支(即 2.2.x),而不是提出问题时的任何当前版本。

选项 1a。编辑~/.gnupg/gpg-agent.conf以使用 ncurses:

pinentry-program /usr/bin/pinentry-curses

选项 1b。编辑~/.gnupg/gpg-agent.conf以使用 Emacs pinentry(如果可用):

pinentry-program /usr/bin/pinentry-emacs

选项 2. 通过 SSH 连接使用本地 gpg-agent 和 GUI,如此处所述

选项 2 需要更多的努力来设置,但不会太多,而且好处是相当可观的。特别是如果您不想在远程服务器上留下密钥。

于 2018-03-31T14:18:56.923 回答