GnuPG: 在Windows上使用gpg时出现“解密失败:未找到秘钥”的错误

27

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

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

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在哪里找到我的秘密密钥?

谢谢,
Suresh

6个回答

28

你需要导入不仅是你的秘钥,还需要对应的公钥,否则你将会得到这个错误。


23
重新导入旧密钥环中的密钥时,您需要指定以下命令:
gpg --allow-secret-key-import --import <keyring>

否则它只会导入公钥,而不是私钥。

2
--allow-secret-key-import 这是一个过时的选项,已经不再使用。自gpg 2.1版本开始,该选项已被废弃。 - Kalpa Gunarathna

9
< p > workmad3 显然已经过时了,至少对于当前版本的gpg而言,因为--allow-secret-key-import 已经过时并且无效。

我遇到的问题是没有正确导出。仅运行 gpg --export 是不够的,因为它只会导出公钥。在导出密钥时,需要运行以下命令:

gpg --export-secret-keys >keyfile

9

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

你有在其他地方备份过秘钥吗?

重新创建秘钥,无论你使用相同的密码短语与否,都不会起作用。每个秘钥对都是唯一的。


7

"秘钥不可用"信息的另一个原因是GPG版本不匹配。

实际例子:我一直在使用GPG v1.4。更换打包系统后,MacPorts提供的gpg被移除,路径中出现了另一个gpg二进制文件,这个版本是2.0。对于解密,它无法找到秘钥并给出了这个错误信息。 对于加密,它抱怨公钥无法使用。 然而,gpg -k和-K都列出了有效的秘钥,这是造成严重困惑的原因。


我遇到了这样的问题,即gpg(1)和gpg2共享同一个目录~/.gnupg/,但在我的情况下,gpg2看不到任何密钥。原来我已经运行gpg很长时间了,在.gnupg目录中有一些错误的文件,例如pubring.kbx、dirmngr.conf以及一些以.off或.old结尾的重命名文件。删除这些文件后,gpg2就非常愉快了。希望这能帮助到某些人! - kronenpj

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接