当前位置: 首页>>技术教程>>正文


“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 <ftpmaster@ubuntu.com>

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  

这是什么意思,为什么会发生?

最佳解决办法

尝试这个:

sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update

次佳解决办法

此消息正在显示,因为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,在此之后你将没有这样的消息。

第三种解决办法

我发现只是在为sudo rm -rf /var/lib/apt/lists && sudo mkdir /var/lib/apt/lists工作。

第四种办法

您可以尝试使用我的脚本自动接收您使用的PPA的所有GPG密钥:smartupdate.sh

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

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

但是当你添加一些未签名的PPA时,手动添加GPG密钥变得无聊。 🙂

第五种办法

以下命令为我解决了这个问题:

sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update

第六种办法

我有类似的错误。但是取代BADSIG,我得到了KEYEXPIRED for 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

该解决方案完美地描述了here,但这是我解决它的方法:

$ 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将完美运作!

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/947.html,未经允许,请勿转载。