关于gnu:GnuPG:Windows上gpg的“解密失败:密钥不可用”错误

关于gnu:GnuPG:Windows上gpg的“解密失败:密钥不可用”错误

GnuPG: “decryption failed: secret key not available” error from gpg on Windows

环境:装有Windows XP SP2的HP笔记本电脑

我已经使用Windows的GnuPG(gpg)创建了一些加密文件。 昨天,我的硬盘发生故障,所以我对硬盘进行了重新映像。 现在,我已经重新安装了gpg,并使用与之前相同的密码重新生成了密钥。 但是,我现在无法解密文件。 我收到以下错误:

1
2
3
4
5
6
7
8
9
10
11
C:\\sureshr>gpg -a c:\\sureshr\\work\\passwords.gpg
gpg: encrypted with 1024-bit ELG-E key, ID 279AB302, created 2008-07-21
     "Suresh Ramaswamy (AAA) BBB"
gpg: decryption failed: secret key not available

C:\\sureshr>gpg --list-keys
C:/Documents and Settings/sureshr/Application Data/gnupg\\pubring.gpg
--------------------------------------------------------------------
pub   1024D/80059241 2008-07-21
uid                  Suresh Ramaswamy (AAA) BBB
sub   1024g/279AB302 2008-07-21

AAA = gpg评论
BBB =我的电子邮件地址

我确定我使用的密码正确。 该错误的确切含义是什么? 如何告诉gpg在哪里可以找到我的密钥?

谢谢,

苏雷什


您不仅需要导入您的秘密密钥,而且还需要导入相应的公共密钥,否则您将得到此错误。


从旧的密钥环重新导入密钥时,需要指定以下命令:

1
gpg --allow-secret-key-import --import <keyring>

否则,它将仅导入公共密钥,而不导入私有密钥。


显然,workmad3已经过时了,至少对于当前的gpg来说已经过时了,因为--allow-secret-key-import现在已经过时了,什么也不做。

我发生的事情是我未能正确出口。仅执行gpg --export是不够的,因为它仅导出公共密钥。导出密钥时,您必须执行

1
gpg --export-secret-keys >keyfile

是的,您的秘密密钥似乎丢失了。没有它,您将无法解密文件。

您是否在某个地方备份了密钥?

无论您是否使用相同的密码短语,重新创建密钥都将无法进行。每个密钥对都是唯一的。


"秘密密钥不可用"消息的另一个原因:GPG版本不匹配。

实际示例:我一直在使用GPG v1.4。切换包装系统后,MacPorts提供的gpg被删除,并在路径中显示了另一个gpg二进制文件,即2.0版。对于解密,它无法找到密钥并给出了这个错误。
对于加密,它抱怨公用密钥不可用。
但是,gpg -k和-K都列出了有效的密钥,这是造成严重混乱的原因。


对于我来说,解决此问题的方法是通知发件人,他确实使用了我发送给他们的公钥,但使用了其他人。您应该看到他们使用的密钥。告诉他们使用正确的方法。


推荐阅读