Debian 9.3 上的 gpg 找不到任何私钥,只有公钥

Debian 9.3 上的 gpg 找不到任何私钥,只有公钥

在 Debian 8 下,我创建了(大概是使用 gpg 1 或 2.0)并将我的密钥 secring.gpg 发布到密钥服务器,该文件仍然位于 ~/.gnupg/ 目录下。但现在有了 gpg 2.1:

gpg --list-secret-keys

没有输出并尝试签署某些内容

gpg -s tmp.txt

失败与

gpg: no default secret key: secret key not available
gpg: signing failed: secret key not available

我是否以某种方式搞砸了从 Debian 8 到 9 的升级?我应该在升级之前导出密钥吗?如何将“旧”密钥导入到“新”gpg 中?

2018-03-01 更新:

问题很简单 - 不知何故,有时 - 我的 secring.gpg 缩小到大小 0! :-/ 在尝试导入时通过 Stephen Kitt 的解决方案发现了它

gpg --import-secret-keys secring.gpg

我收到一条消息,指出我的文件不包含有效数据。

答案1

GnuPG 2.1 不再使用~/.gnupg/secring.gpg;相反,它在代理的帮助下使用 ~/.gnupg/private-keys-v1.d` 中的单独文件。在某些时候应该有自动迁移,但是在许多情况下会丢失一些信息(包括使用 GnuPG 添加私钥的情况12.1 迁移)。

要解决此问题,您应该导入您的密钥环:

gpg --import ~/.gnupg/secring.gpg

您将在以下位置找到更多有用的信息这个方便的 GnuPG 2.1 迁移指南,并在发行说明

(我认为还值得一提的是,您的秘密密钥环永远不应该导出到公共服务器,并且 GnuPG 本身会尝试阻止您这样做;因此您不能依赖外部信息源作为您的秘密密钥的备份.)

相关内容