Emacs epa模式:pinentry无法加密和保存文件

时间:2012-10-25 15:13:59

标签: emacs tmux gnupg gnu-screen passphrase

我正在尝试在此article中列出的emacs中使用epa模式和组织模式。

我使用屏幕会话和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]

我选择'ok'但只获得

Opening output file: Encrypt failed, Exit

我的密码短语没有提示,也没有给出其他输出。它不会提示输入密码。它甚至没有将我的gpg'用户'列为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的文章,他们没有帮助解决问题。 提前谢谢。

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

2 个答案:

答案 0 :(得分:0)

如果此提示来自pinentry-curses,您可以尝试: 1.输入密码(可能不会输入,请尝试), 2.按Tab键,3。按两次Enter键。

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

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

答案 1 :(得分: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为described here

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