GnuPG 2.2 拒绝导入密钥:“发送给代理时出错:操作取消”

GnuPG 2.2 拒绝导入密钥:“发送给代理时出错:操作取消”

我正在尝试将我的 PGP 身份(包括密钥)导入到新计算机,方法是连接到具有密钥的计算机,然后运行

ssh othercomputer cat myself.gpg | gpg2 --import

执行此操作时,GPG 似乎正在导入公钥,但未导入私钥。仔细检查输出时,我看到它显示“发送至代理时出错:操作已取消”,我认为这与问题有关。

我有

  • pinentry-program尝试在中指定gpg-agent.conf
  • 重新启动gpg-agent并再三检查它是否正在运行;并且
  • 验证 gpg-agent 和 gpg 的版本是否匹配。

答案1

我认为,问题在于 GnuPG 检测到它在管道中运行,即在非交互式 shell由于非交互式意味着没有用户与其交互,因此显示 pinentry 对话框没有什么意义 — — 至少在大多数情况下。

最简单的解决方案是将其存储myself.gpg在本地驱动器上,然后使用单独的命令将其导入。我理解这种解决方案可能会对隐私和保密产生一些影响,因此在盲目听从建议之前,请先了解这种选择的后果。

答案2

pinentry-mode在命令行或 ~/.gnupg/gpg.conf 文件中设置。

--pinentry-mode loopback

要不就

pinentry-mode loopback在配置文件中。

答案3

添加pinentry-mode loopback文件~/.gnupg/gpg.conf适用于 Ubuntu 20.04

相关内容