gpg:解密失败:会话密钥错误

时间:2015-05-19 06:17:01

标签: gnupg

我尝试使用gpg解密文件并收到此错误:

$ gpg --no-tty --batch --verbose --decrypt --passphrase foo file.enc
Version: GnuPG v1.4.11 (GNU/Linux)
gpg: armor header: 
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: decryption failed: Bad session key

我试图重新加载gpg代理,没有运气:

$ gpgconf --reload gpg-agent

如何解决?

3 个答案:

答案 0 :(得分:7)

为了记录,如果有人也会遇到这个问题:

问题是,加密是使用gpg版本1.4.11完成的,解密是使用gpg版本2.0.22。

将加密升级到gpg2(2.0.17)后,一切正常。

答案 1 :(得分:2)

我发现了这似乎是我在其他任何地方都找不到的魔力:

尝试在命令中添加“ --pinentry模式环回”。也许有一个 您的安装/ pinentry程序出现问题,使其无法启动或 您正在使用虚拟/测试pinentry进行酸性测试,这会提供错误的信息 密码。

答案 2 :(得分:0)

我在批处理模式下使用密码文件加密了我的文件。当我试图解密我的文件时,我收到了可怕的“会话密钥错误”消息。

我使用 Vim for Windows 创建了一个密码文件,即使我没有按回车键,Vim 也会在文本行的末尾留下 \r\n。 gpg 忽略了 \n 但保留了 \r 作为密码的一部分!

Windows 版 Vim 可以被诱导不离开 \r\n,但是只使用记事本而不在行尾回车会更容易。最好使用十六进制转储检查您的密码文件以确保。在使用命令行提供密码短语时,还有其他方法会因 \r\n 问题而受到伤害,因此请务必警惕。