我尝试使用以下命令解密文件:
gpg --output file.txt --decrypt file.pgp
文件已成功解密,但出现错误:
“gpg:无法检查签名:未找到公钥”
任何想法,为什么我会收到此错误?
答案 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