W:GPG错误:http://ppa.launchpad.net精确发布:由于公共密钥不可用,因此无法验证以下签名:


44

我这样做时会收到以下错误 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

仍然我得到相同的错误或获取更新。我可以尝试其他解决方案吗?


您在这里尝试了所有解决方案吗?askubuntu.com/questions/13065/...
fossfreedom

试试:$ sudo apt-key adv --keyserver-options http-proxy=<proxy-server> --keyserver keyserver.ubuntu.com --recv 6AF0E1940624A220
Marslo

Answers:


77

链接中提到的第二种方法对我有用。手动下载并添加密钥。希望对别人也有帮助。


上面的链接提供了带有屏幕截图的详细说明。它还有一些其他简单的方法,可以在手动执行此操作之前尝试一下。由于无法从某些地区访问它,因此让我描述对我有用的方法:Youtube

  1. 转到OpenPGP公钥服务器。您可以在此处将密钥输入该Search String字段,而其他所有内容均保持不变,然后单击“搜索!”。
    当一键搜索,总是预先准备0x!这意味着,例如,您必须搜索0x6AF0E1940624A220而不是6AF0E1940624A220
  2. 单击该pub部分提供的链接。这应该带您到包含密钥的页面。该页面的标题应类似于Public Key Server -- Get "0x6AF0E1940624A220"
  3. 复制标题下方的所有内容(从开始-----BEGIN PGP PUBLIC KEY BLOCK-----),并将其保存在文件中(例如key1)。
  4. 获得文件后,运行以下命令

    sudo apt-key add key1
    

您将收到“确定”的答复。

您完成了。重复可能缺少的其他键的过程。


我可以请您在此处描述该链接。它过滤了我们的国家。
shgnInc 2014年

@shgnInc添加了相关部分。
Aniket Thakur 2014年

2
非常感谢您。
shgnInc 2014年

对于那些受到挑战的bash(我们中的大多数人),您可以将其粘贴到bash shell中,然后按回车以修复所有键的问题:sudo apt-get update 2>&1 | \ grep NO_PUBKEY | \ sed -e' s?^。* NO_PUBKEY ??' | \同时读取_hash; 做\ wget -O-“ keyserver.ubuntu.com/pks/lookup?op=get&search=0x$ {_hash}” | \ sudo apt-key add-; 完成
Michael Mikowski '16

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。灵感来自superuser.com/a/784913/112396
Marslo

1

这是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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.