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


3

我试图通过连接到具有密钥的计算机并运行将我的PGP身份(包括密钥)导入到新计算机

ssh othercomputer cat myself.gpg | gpg2 --import

这样做时,看起来GPG正在导入公钥,而不是私钥。当仔细检查输出时,我可以看到它说“发送给代理的错误:取消了操作”,我认为这与问题有关。

我有

  • 尝试指定一个 pinentry-programgpg-agent.conf;
  • 重新启动 gpg-agent 并且三重检查它正在运行;和
  • 验证了gpg-agent和gpg的版本匹配。

Answers:


1

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

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


尝试从paperkey通过管道导入受密码保护的私钥时,会出现类似的问题。
elquimista

@kqr这是真的,解决方案是使用基于文本的pinentry,就像 pinentry-curses。您可能已经安装了它,但另一个pinentry程序是默认程序。在Debian上你可以 sudo update-alternatives --config pinentry 将ncurses版本设置为默认值。这通常是一个符号链接 /usr/bin/pinentry - > /etc/alternatives/pinentry - > /usr/bin/pinentry-curses
goetzc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.