GPG 无法检查签名。

我试图在我的Natty服务器上重新编译和重建来自Oneiric的libevent2源代码,但是遇到了一个小错误,GPG无法检查签名。
# dpkg-source -x libevent_2.0.12-stable-1.dsc
gpgv: Signature made Fri Jun 17 07:12:50 2011 PDT using DSA key ID 7ADF9466
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./libevent_2.0.12-stable-1.dsc

有没有办法解决这个警告?
3个回答


是的,这里由 @enzotib 和 @Flint 提出的 gpg 命令在我使用 Ubuntu 14.04 上并没有起作用,至少在运行 apt-get source 时无法启用验证。但是,安装 debian-keyring 包是有效的,正如 @ændrük 所建议的那样。 - fjarlq

首先,你应该按照@enzotib的指示将密钥导入到本地密钥环中。
gpg --keyserver keyserver.ubuntu.com --recv-keys 7ADF9466

然后将密钥导出到您的本地trustedkeys以使其受信任:
gpg --no-default-keyring -a --export 7ADF9466 | gpg --no-default-keyring --keyring ~/.gnupg/trustedkeys.gpg --import -

这在Ubuntu 16.04中有效,其中~/.gnupg/trustedkeys.gpg不存在。 - Stéphane Gourichon

你应该使用以下命令将密钥导入本地密钥环。
gpg --keyserver keyserver.ubuntu.com --recv-keys 7ADF9466

然后,再次尝试这个命令。

1谢谢,但它仍然无法验证签名。 - Flint
2@Flint:你正在以root用户身份运行,所以这个命令也应该以root用户身份运行,以进入根密钥环。你已经这样做了吗? - enzotib
6有没有官方的来源证明这种方法是安全的?如果7ADF9466在密钥环包中不存在,我怎么知道它确实是正确的签名密钥?如何防止中间人使用不同的密钥(甚至是具有相同32位哈希的不同密钥)提供一个用不同密钥签名的dsc文件? - kasperd