“GPG 错误:发布:以下签名无效:BADSIG”

“GPG 错误:发布:以下签名无效:BADSIG”

我在终端中运行了这个命令:

sudo apt-get update

更新结束时出现以下错误报告:

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <[email protected]>

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release  

这意味着什么以及为什么会发生这种情况?

答案1

显示此消息是因为您的 apt-key 数据库中缺少该存储库的 gpg 密钥。

要导入密钥,请打开终端并输入以下命令

gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 

pgp 密钥主要分布在几个密钥库中。Ubuntu 相关密钥通常位于 中keyserver.ubuntu.com。但如果失败,您可以使用替代方案。例如 -

gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192

您必须用特定的键替换字母数字部分。确保密钥是你信任的. 任何拥有此密钥的存储库都能够在没有警告的情况下安装任何软件包。

如果上述操作成功,你会看到以下输出

gpg: Total number processed: 1
gpg:               imported: 1

然后运行此命令:

gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add - 

注意-后面的符号add

那么sudo apt-get update,此后您将不会再收到此类消息。

答案2

我在较旧的 Ubuntu 16.04 机器上遇到了这个问题。我的密钥没有过期,所以我不太清楚为什么会出现错误。我尝试了 SirCharlo 的方法,但仍然出现相同的错误。由于这个错误来自“Ubuntu Extras Archive Automatic Signing Key”,我决定刷新我的密钥。刷新后,一切正常。不确定这是否是两种方法的组合,但如果 SirCharlo 的方法不起作用,请运行以下命令:

apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com

答案3

您可以尝试我的脚本来自动接收您使用的 PPA 的所有 GPG 密钥:智能更新工具

它将启动apt-get update,然后查找所有 GPG 错误并接收找到的 GPG 签名的密钥。 在你的情况下,它只会启动

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4

但是当您添加一些未签名的 PPA 时,手动添加 GPG 密钥就会变得无聊。:)

答案4

我遇到了类似的错误。但BADSIG我得到的KEYEXPIRED是 PostgreSQL repo 的错误:

W: A error occurred during the signature verification.
  The repository is not updated and the previous index files will be used.
  GPG error: http://apt.postgresql.org precise-pgdg Release:
  The following signatures were invalid: KEYEXPIRED 1381654177

解决方案描述得很完美这里但这就是我解决问题的方法:

$ sudo apt-key list | grep -B1 PostgreSQL
$ sudo apt-key del ACCC4CF8
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

现在$ sudo apt-get update可以完美运行了!

相关内容