我正在运行apt-get update
,看到如下错误
W: GPG error: http://us.archive.ubuntu.com precise Release:
The following signatures were invalid:
BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <[email protected]>
很容易找到如何来解决这些问题,例如通过请求新密钥apt-key adv --recv-keys
或重建缓存;所以我不是问如何解决这些问题。
但为什么这是正确的做法?为什么“哦,我需要新密钥?太好了,去获取新密钥”不违背拥有签名存储库的初衷?密钥是否由可apt-key
检查的主密钥签名?我们是否应该进行一些额外的验证以确保我们获得的是合法密钥?
答案1
有关 GPG 签名背后的思想以及它如何确保更安全的签名存储库的相关基本概念:
我认为,建议的修复方案并不安全。更安全的解决方案是/var/lib/apt/lists/
按照这个答案。我建议这样做是因为,apt 自动检查包的完整性与寻找每个钥匙相比,这是一个更轻松的解决方案。
这并不意味着您不应该手动添加密钥,但前提是您知道如何检查密钥是否有效。检查包的完整性/密钥有效性的一些方法:
- 交叉检查如果 GPG 密钥已在
releases.gpg
文件中列出。如果已经可用,您可以放心密钥是安全的,因为文件中只包含受信任开发人员的密钥releases.gpg
。 - 安装
debsig-verify
包(命令手册debsig-verify
页)。它会自动验证 Debian 软件包本身的来源和有效性。不过,您可能会不时遇到奇怪的问题,因为debsig-verify
Debian 软件包中嵌入的签名会被检查,而自 secure-apt 问世以来,这种做法已不常见。
因此,接受的解决方案是解决 apt-get BADSIG GPG 错误的最简单方法是什么?对于普通人来说,这并不推荐,也不安全,因为他可能没有时间、耐心或意识来检查解决方案是否足够安全。相反,应该推荐该问题的第二个答案,因为它简单且更安全。
相关的: