首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs epa模式: pinentry加密保存文件失败

Emacs epa模式: pinentry加密保存文件失败
EN

Stack Overflow用户
提问于 2012-10-25 23:13:59
回答 2查看 1.5K关注 0票数 5

我正在尝试在emacs中使用epa模式和org模式,就像这个article所展示的那样。

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

我有过

代码语言:javascript
复制
pinentry-program /usr/bin/pinentry-curses 

作为.gnupg/gpg.conf中的最后一行。当我尝试保存文件时,会出现以下菜单:

代码语言:javascript
复制
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‘,但只得到

代码语言:javascript
复制
Opening output file: Encrypt failed, Exit

我没有得到密码短语的提示,也没有给出其他输出。它不会提示输入密码短语。它甚至没有将我的gpg“用户”列为foo@bar.com。

然而,当这一行在.gnupg/gpg.conf文件中不存在时,我确实在'Select recipients for encryption‘对话框中看到了我的gpg 'user’。但是,cpu与以下消息相关联:

代码语言:javascript
复制
Encrypting /home/user/test.gpg...

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

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

以前,当/usr/bin/pinentry链接到/usr/bin/pinentry-gtk-2时,如果我在本地机器上,我会得到'Select recipients‘提示,并列出我的gpg用户。我得到一个对话框来输入我的密码短语,这一切都起作用了。我会得到

代码语言:javascript
复制
Encrypting /home/user/test.gpg...

这一切都会成功的。

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

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

更新: 26-10-2012今天早上对cryptsetup包的更新似乎影响了行为。现在,当我打开一个.gpg文件时,会得到一个“请输入密码”的提示,但它似乎从来没有超过这个提示。输入我的密码短语后,提示符始终不会消失。

EN

回答 2

Stack Overflow用户

发布于 2014-02-14 16:26:35

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

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

有人知道如何将pinentry-curses对话框强制转换为适合emacs的一行吗?

票数 0
EN

Stack Overflow用户

发布于 2018-03-31 22:18:57

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

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

代码语言:javascript
复制
pinentry-program /usr/bin/pinentry-curses

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

代码语言:javascript
复制
pinentry-program /usr/bin/pinentry-emacs

选项2.以described here身份通过SSH连接使用本地gpg-agent和图形用户界面

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13071720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档