W: GPG错误:http://ppa.launchpad.net precise Release:由于公钥不可用,无法验证以下签名:

我执行sudo apt-get update时遇到以下错误。
W: GPG error: http://ppa.launchpad.net precise Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6AF0E940624A220

我在这里阅读了各种问题,并通过谷歌搜索尝试了以下几种方法。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF0E1940624A220

它没有帮助。我还尝试过。
sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

思考端口11371(默认)可能由于防火墙而被阻止。
我还尝试了以下重置所有设置。
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update && sudo apt-get upgrade

还是出现相同的错误或者得到更新。还有其他可能的解决方案我可以尝试吗?

你尝试过这里的所有解决方案了吗?http://askubuntu.com/questions/13065/how-do-i-fix-the-gpg-error-no-pubkey - fossfreedom
尝试:$ sudo apt-key adv --keyserver-options http-proxy=<proxy-server> --keyserver keyserver.ubuntu.com --recv 6AF0E1940624A220 - Marslo
2个回答

这个链接中提到的第二种方法对我有用。手动下载密钥并添加它。希望对其他人也有帮助。
上面的链接提供了详细的解释和截图。在手动操作之前,还有一些其他简单的方法可以尝试。由于某些地区无法访问该链接,让我来描述一下对我有效的方法:YouTube。
  1. 前往OpenPGP公钥服务器。在那里,您可以将密钥输入到“搜索字符串”字段中,其他保持不变,然后点击“搜索!”
    搜索密钥时,始终在其前面加上0x!这意味着,例如,您必须搜索0x6AF0E1940624A220而不是6AF0E1940624A220
  2. 点击“pub”部分提供的链接。这将带您进入包含密钥的页面。页面标题应类似于公钥服务器 -- 获取“0x6AF0E1940624A220”
  3. 从标题下方复制所有内容(从-----BEGIN PGP PUBLIC KEY BLOCK-----开始),并将其保存在一个文件中(例如key1)。
  4. 获取文件后,运行以下命令

    sudo apt-key add key1
    
你会得到一个“OK”的回应。
然后你就完成了。重复其他可能缺失的键的步骤。

对于那些不熟悉Bash(大多数人!)的人来说,这是一个可以粘贴到Bash shell中并按回车键解决所有密钥问题的脚本:sudo apt-get update 2>&1 |
grep NO_PUBKEY |
sed -e 's?^.*NO_PUBKEY ??' |
while read _hash; do
wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x${_hash}" |
sudo apt-key add -; done
- Michael Mikowski
Ubuntu命令:$ sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv <MISSED_PUBKEY_NUMBER>。例如,对于6AF0E1940624A220,命令应为:$ sudo apt-key adv --keyserver-options http-proxy=<proxy_server> --keyserver keyserver.ubuntu.com --recv 6AF0E1940624A220。灵感来自https://superuser.com/a/784913/112396。 - Marslo

这是Aniket答案的简化版本。
for fingerprint in 40976EAF437D05B5 3B4FE6ACC0B21F32; do
  curl "http://keyserver.ubuntu.com/pks/lookup?op=get&fingerprint=on&search=0x$fingerprint" | \
    awk '/-----BEGIN PGP/{p=1} /-----END PGP/{print; p=0} p==1{print}' > key.txt;
  sudo apt-key add key.txt;
done

在第一行上放置您需要的所有键。

我添加了多余的分号,以便您可以将其变成一行代码放入Dockerfile中。我不知道为什么之前正常工作的容器构建现在需要这样做。在修复之前,我遇到了以下错误:

W: GPG error: http://deb.nodesource.com trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1655A0AB68576280
W: GPG error: http://archive.ubuntu.com trusty-updates InRelease: 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 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://security.ubuntu.com trusty-security InRelease: 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 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32