使用 pinentry 和 keepass2 进行 gpg 邮件加密

使用 pinentry 和 keepass2 进行 gpg 邮件加密

Debian Jessie、XFCE 4.10、KeePass2、IceDove(带有 Enigmail)..

我正在使用 KeePass2 为我的 gpg 私钥生成密码来解密/加密邮件。 Icedove 是我使用 enigmail 的客户。

一旦我想要解密/加密邮件pinentry(pinentry-gtk2)就会弹出,我无法粘贴到密码字段中,也无法移动它 - 因此我想让 KeePass2 自动输入我的长屁股密码给我。哪一个不是使用键盘快捷键(适用于其他任何操作),但在 KeePass2 条目中右键单击“执行自动键入'。

这慢慢让我发疯。我现在已经阅读了大量的论坛讨论 - 没有一个真正有帮助,并尝试更改我的 gpg-agent 设置以使用 pinentry-curses。我什至删除了 pinentry-gtk2,这使得icedove完全无法解密/加密。

任何使自动输入功能或粘贴在 pinentry 窗口中工作的建议。或者替代pinentry?

答案1

事实上,接受的答案使用与问题中描述的相同的过程,这表明没有办法使 KeePass 自动类型(甚至简单的复制粘贴)与 pinentry 一起使用。然而,这是错误的!

正如其他人所述,pinentry程序gpg-agent(例如pinentry-gtk-2)全局锁定(“抓取”)键盘。但是,gpg-agent可以使用选项配置为禁用此行为--no-grab- 请参阅GPG文档。 (笔记:该选项在文档中有安全警告。但是,如果您无论如何都使用 KeePass,我怀疑使用 pinentry--no-grab不会为您提供任何额外的安全性。)

为了用作--no-grab默认值gpg-agent,请创建/编辑文件~/.gnupg/gpg-agent.conf(即主目录中的目录gpg-agent.conf中的文件)并添加行.gnupg

no-grab

对它(gpg-agent.conf文档中的信息)。因此,从此时开始,每次gpg-agent启动时,它将使用该--no-grab选项,并且pinentry-gtk-2表现得像普通窗口一样(因此您可以使用键盘快捷键执行自动输入、粘贴到文本字段等)。

答案2

在 Keepass2 中,“添加条目”,并将“标题”设置为“GPG”。从“条目”选项卡移至“自动类型”选项卡。选择“覆盖默认序列”并设置为“{PASSWORD}”。

在发送电子邮件之前,请使用 Keepass2 密码打开 Keepass2。使用 Enigmail 要求 IceDove“发送”,并且应该出现 pinentry(锁定键盘、阻止“Ctrl+V”(或您通常用于执行自动输入的任何其他键盘快捷键)、阻止切换窗口“Alt+Tab”等) 。

使用鼠标突出显示 Keepass2 中的“GPG”条目,然后单击 Keepass2 中的“执行自动输入”图标(“查找”图标左侧、“帮助”菜单下方)。由于键盘“焦点”最后位于 pinentry 文本输入框上,Keepass2 现在将开始为您输入长密码。

使用鼠标在 pinentry 上单击“确定”。完毕!

有关“自动类型”的更多详细信息(http://keepass.info/help/base/autotype.html)。

答案3

    Debian 7.7(喘息)
    通量盒1.3.2-4
    KeePass2 2.28
    单声道2.10.8.1-8
    xdotool 2.20110530.1
    gnupg2 2.0.19-2+deb7u2

根据我的经验,KeePass2 版本 2.28 是 Debian 上第一个自动输入终端或非 GUI 程序的版本。我可以从 KeePass 2.28 自动输入 ssh 或 pinentry-curses。当我测试它时,自动类型无法与 pinentry-gtk-2 一起使用。我不使用icedove,所以无法测试。

相关内容