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


apt – 无法解决 GPG 错误

, ,

问题描述

我运行了 sudo apt-get update,最后出现以下错误:

Fetched 14,3 kB in 54s (264 B/s)
Reading package lists... Done
W: GPG error: http://archive.canonical.com saucy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://extras.ubuntu.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192
W: GPG error: http://dl.google.com stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A040830F7FAC5991
W: GPG error: http://archive.getdeb.net trusty-getdeb InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A8A515F046D7E7CF
W: GPG error: https://private-ppa.launchpad.net trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E131728675254D99
W: GPG error: http://archive.ubuntu.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty-updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty-security Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty-proposed Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

看来我丢失的钥匙是:

  • 40976EAF437D05B5

  • 3B4FE6ACC0B21F32

  • 16126D3A3E5C1192

  • A040830F7FAC5991

  • A8A515F046D7E7CF

  • E131728675254D99

我看到大多数答案都说要运行:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [MISSING KEY]

我跑了:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.2LrTHdOU28 --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/amandeepgrewal-notifyosdconfig.gpg --keyring /etc/apt/trusted.gpg.d/apandada1-typhoon.gpg --keyring /etc/apt/trusted.gpg.d/brightbox-ppa.gpg --keyring /etc/apt/trusted.gpg.d/chris-lea-node_js-devel.gpg --keyring /etc/apt/trusted.gpg.d/chris-lea-node_js.gpg --keyring /etc/apt/trusted.gpg.d/colingille-freshlight.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-squeeze-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-squeeze-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg --keyring /etc/apt/trusted.gpg.d/diesch-testing.gpg --keyring /etc/apt/trusted.gpg.d/duh-golang.gpg --keyring /etc/apt/trusted.gpg.d/ferramroberto-gsharkdown.gpg --keyring /etc/apt/trusted.gpg.d/finalterm-daily.gpg --keyring /etc/apt/trusted.gpg.d/fkrull-deadsnakes.gpg --keyring /etc/apt/trusted.gpg.d/fossfreedom-byzanz.gpg --keyring /etc/apt/trusted.gpg.d/fossfreedom-packagefixes.gpg --keyring /etc/apt/trusted.gpg.d/gophers-go.gpg --keyring /etc/apt/trusted.gpg.d/leolik-leolik.gpg --keyring /etc/apt/trusted.gpg.d/linrunner-tlp.gpg --keyring /etc/apt/trusted.gpg.d/mactel-support-ppa.gpg --keyring /etc/apt/trusted.gpg.d/me-davidsansome-clementine.gpg --keyring /etc/apt/trusted.gpg.d/michael-gruz-canon-trunk.gpg --keyring /etc/apt/trusted.gpg.d/michael-gruz-canon.gpg --keyring /etc/apt/trusted.gpg.d/moka-stable.gpg --keyring /etc/apt/trusted.gpg.d/numix-ppa.gpg --keyring /etc/apt/trusted.gpg.d/nuvola-player-builders-beta.gpg --keyring /etc/apt/trusted.gpg.d/otto-kesselgulasch-gimp-edge.gpg --keyring /etc/apt/trusted.gpg.d/scopes-packagers-ppa.gpg --keyring /etc/apt/trusted.gpg.d/shutter-ppa.gpg --keyring /etc/apt/trusted.gpg.d/steam.gpg --keyring /etc/apt/trusted.gpg.d/sukso96100-budgie-desktop.gpg --keyring /etc/apt/trusted.gpg.d/ubuntu-sdk-team-ppa.gpg --keyring /etc/apt/trusted.gpg.d/ubuntu-x-swat-x-updates.gpg --keyring /etc/apt/trusted.gpg.d/vajdics-netbeans-installer.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-atom.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-brackets.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-java.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-sublime-text-3.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-themes.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-y-ppa-manager.gpg --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team-sublime-text-3.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team-themes.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team-y-ppa-manager.gpg': resource limit
gpg: requesting key 437D05B5 from hkp server keyserver.ubuntu.com
gpg: key 437D05B5: "Ubuntu Archive Automatic Signing Key <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

我可以看到 unchanged: 1 。\n我也尝试使用 y-ppa-manager 但也没有解决问题。

是什么导致了这些错误以及如何解决这些错误?

最佳方案

对我来说,这看起来像 following bug

怎么修

来自在错误报告中修复它的用户:

\\n

The solution that worked for me was emptying /etc/apt/trusted.gpg.d, running apt-get update, and then manually adding every key it blocked on to the main /etc/apt/trusted.gpg keyring with apt-key adv as described above.

\\n

因此,对于您的情况,您应该执行以下操作(免责声明:无法测试它):

sudo mv /etc/apt/trusted.gpg.d/ /etc/apt/trusted.gpg.d.backup
sudo mkdir /etc/apt/trusted.gpg.d
sudo chmod 755 /etc/apt/trusted.gpg.d

然后,对于您需要的每个键:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

您可以将哈希值替换为所需密钥的哈希值。正如 Ionic\u0103 Biz\u0103u 所指出的,可以添加多个键,并用空格分隔。

为什么会出现

显然,gpg 只能处理有限数量的密钥环,而您的安装需要更多密钥环。这可能是由于有许多替代数据包源造成的。

再次,来自错误报告:

I asked about the "resource limit" message on the gnupg-users mailing list...
Based on Werner Koch's (the dev) answer...
...the secure apt related programs might be making gpg use more than the maximum number of keyrings that it can handle

参考资料

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