无法解决 GPG 错误

Ion*_*zău 17 updates apt keys

我跑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
Run Code Online (Sandbox Code Playgroud)

看来我丢失的钥匙是:

  • 40976EAF437D05B5
  • 3B4FE6ACC0B21F32
  • 16126D3A3E5C1192
  • A040830F7FAC5991
  • A8A515F046D7E7CF
  • E131728675254D99

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

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [MISSING KEY]
Run Code Online (Sandbox Code Playgroud)

我跑了:

$ 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 <ftpmaster@ubuntu.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
Run Code Online (Sandbox Code Playgroud)

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

是什么导致了这些错误,我该如何解决?

nol*_*eti 37

这对我来说看起来像以下错误

怎么修

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

对我有用的解决方案是清空 /etc/apt/trusted.gpg.d,运行 apt-get update,然后使用 apt-key 手动将它阻止的每个密钥添加到主 /etc/apt/trusted.gpg 密钥环adv 如上所述。

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

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
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
Run Code Online (Sandbox Code Playgroud)

在那里你用你需要的密钥的哈希替换哈希。作为离子?Biz?u 指出,可以添加多个键,用空格分隔。

为什么出现

显然,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
Run Code Online (Sandbox Code Playgroud)

  • +1,似乎有效。请注意,`--recv-keys` 支持空格分隔值。因此,一个带有所有键的命令。另外,您能否在答案中包含出现此问题的原因? (3认同)