无法检查签名:找不到公钥

时间:2014-08-01 07:16:59

标签: encryption cmd pgp gnupg

我尝试使用以下命令解密文件:

gpg --output file.txt --decrypt file.pgp

文件已成功解密,但出现错误:

  

“gpg:无法检查签名:未找到公钥”

任何想法,为什么我会收到此错误?

5 个答案:

答案 0 :(得分:24)

你需要你的gpg钥匙圈中的公钥。要将公钥导入公钥,请将公钥块放在扩展名为.gpg的文本文件中,然后发出以下命令:

gpg --import <your-file>.gpg

加密文件的实体应该为您提供这样的块。例如,ftp://ftp.gnu.org/gnu/gnu-keyring.gpg包含gnu.org的块。

有关更深入的解释,请参阅 Verifying files with GPG, without a .sig or .asc file?

答案 1 :(得分:21)

您收到该错误是因为您没有签名邮件的人的公钥。

gpg应该给你一条消息,其中包含用于签名的密钥的ID。从加密文件的人那里获取公钥并将其导入密钥环(gpg2 --import key.asc);你应该能够在那之后验证签名。

如果发件人将其公钥提交给密钥服务器(例如,https://pgp.mit.edu/),那么您可以直接从密钥服务器导入密钥:

gpg2 --keyserver https://pgp.mit.edu/ --search-keys <sender_name_or_address>

答案 2 :(得分:2)

有一个类似的问题。这是tomcat数字签名。

$ gpg --verify apache-tomcat-9.0.16-windows-x64.zip.asc apache-tomcat-9.0.16-windows- 
x64.zip
gpg: Signature made 2019年02月 5日  0:32:50
gpg:                using RSA key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
gpg: Can't check signature: No public key

但是我随后使用它提供的RSA密钥来接收公共密钥进行验证。

$ gpg --receive-keys A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
gpg: key 10C01C5A2F6059E7: 38 signatures not checked due to missing keys
gpg: key 10C01C5A2F6059E7: public key "Mark E D Thomas <markt@apache.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

然后成功。

$ gpg --verify apache-tomcat-9.0.16-windows-x64.zip.asc
gpg: assuming signed data in 'apache-tomcat-9.0.16-windows-x64.zip'
gpg: Signature made 2019年02月 5日  0:32:50
gpg:                using RSA key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
gpg: Good signature from "Mark E D Thomas <markt@apache.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: A9C5 DF4D 22E9 9998 D987  5A51 10C0 1C5A 2F60 59E7

答案 3 :(得分:0)

我收到相同的消息,但是我的文件已按预期解密。如果可以看到输出文件,请检查目标路径。

答案 4 :(得分:-1)

我在 repo init 时遇到了这个问题, 我不得不更新我的 linux 机器中的路径变量并解决了它。

PATH=~/bin:$PATH