当我这样做时出现以下错误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
我仍然收到相同的错误或获取更新。我可以尝试其他可能的解决方案吗?
答案1
本文提到的第二种方法关联对我有用。手动下载密钥并添加。希望这对其他人也有帮助。
这关联上面提供了详细的解释和截图。它还有一些其他简单的方法,可以在手动执行之前尝试。由于某些地区无法访问,让我描述一下对我有用的方法:YouTube。
- 前往OpenPGP 公钥服务器。您可以在字段中输入密钥
Search String
,其他内容保持不变,然后单击“搜索!”。
搜索密钥时,始终添加0x
到它前面! 这意味着,例如,您必须搜索0x6AF0E1940624A220
而不是6AF0E1940624A220
。 - 单击部分中提供的链接
pub
。这将带您进入包含密钥的页面。页面标题应类似于Public Key Server -- Get "0x6AF0E1940624A220"
- 复制标题下方的所有内容(从 开始
-----BEGIN PGP PUBLIC KEY BLOCK-----
)并将其保存在文件中(例如key1
)。 获得文件后,运行以下命令
sudo apt-key add key1
您将会收到“OK”的回复。
您已完成。对可能丢失的其他键重复此过程。
答案2
这是 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