我在“软件源”程序中添加了一些额外的存储库。但是,当我重新加载软件包数据库时,出现如下错误:
W:GPG错误:http : //ppa.launchpad.net可信任InRelease:由于公共密钥不可用,无法验证以下签名:NO_PUBKEY 8BAF9A6F
apt-key
根据Ubuntu的官方文档,我知道我可以在终端中使用它来修复它。但是我本来希望以图形方式完成它。有没有一种方法可以不使用终端?
我在“软件源”程序中添加了一些额外的存储库。但是,当我重新加载软件包数据库时,出现如下错误:
W:GPG错误:http : //ppa.launchpad.net可信任InRelease:由于公共密钥不可用,无法验证以下签名:NO_PUBKEY 8BAF9A6F
apt-key
根据Ubuntu的官方文档,我知道我可以在终端中使用它来修复它。但是我本来希望以图形方式完成它。有没有一种方法可以不使用终端?
Answers:
到目前为止,最简单的处理方法是使用Y-PPA-Manager(现在将launchpad-getkeys
脚本与图形界面集成在一起)。
要安装它,请首先为此程序添加webupd8存储库:
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
更新您的软件列表并安装Y-PPA-Manager:
sudo apt-get update
sudo apt-get install y-ppa-manager
运行y-ppa-manager(即键入y-ppa-manager
然后按Enter键)。
当出现y-ppa-manager主窗口时,单击“高级”。
从高级任务列表中,选择“尝试导入所有缺少的GPG密钥”,然后单击“确定”。
你完成了!如警告对话框所述,当您开始操作时,可能要花一些时间(对我来说大约2分钟),具体取决于您拥有的PPA数量和连接速度。
在终端中执行以下命令
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>
<PUBKEY>
您缺少的存储库公共密钥在哪里,例如8BAF9A6F
。
然后更新
sudo apt-get update
替代方法:
sudo gpg --keyserver pgpkeys.mit.edu --recv-key <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update
请注意,当您使用这样的方式导入密钥时,apt-key
是在告诉系统您信任要导入的密钥以对系统将使用的软件进行签名。除非您确定密钥确实是包裹分发者的密钥,否则不要这样做。
NO_PUBKEY
值作为keys参数传递。例如GPG错误[...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3766223989993A70
当您没有合适的存储库公钥时,就会发生这种情况。
要解决此问题,请使用以下命令:
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21
从ubuntu密钥服务器检索密钥。然后这个:
gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -
这会将密钥添加到适当的受信任密钥中。
pgpkeys.mit.edu
服务器。
/etc/apt/sources.list.d/
文件夹中,但显然没有导入gpg键。好的答案,简单点,就是+1!
http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
gpg --gen-key
(参考文献- packaging.ubuntu.com/html/getting-set-up.html)
您需要获取并导入密钥。
要从PPA获取密钥,请访问PPA的启动板页面。在“关于此PPA的技术详细信息”(1)之后,在启动板的每个PPA页面上,您都可以找到此链接(2):
跟随它并单击密钥ID链接(3):
保存页面,这是您的密钥文件。
现在是时候导入它了:
Applications > Software Center
,Edit > Software sources...
,Authentication
选项卡,然后单击Import Key File...
,最后OK
。apt-key
。
apt只能处理/etc/apt/trusted.gpg.d中的40个密钥。41个密钥,即使您按照所有步骤添加丢失的密钥,也会收到GPG错误“找不到公共密钥”。
检查此文件中是否有您不再使用的ppa中未使用的密钥。如果所有这些都在使用中,请考虑删除一些ppa以及/etc/apt/trusted.gpg.d中的相应密钥文件。
此外,使用
sudo apt-key adv
被认为是安全风险,因此不建议您这样做,因为它“ 破坏了整个安全概念,因为出于各种原因,这不是一种安全的方式来接收密钥(例如:hkp是纯文本协议,可以伪造短甚至长的keyid,…” ) ”。http://ubuntuforums.org/showthread.php?t=2195579
我相信添加缺失键(例如1ABC2D34EF56GH78)的正确方法是
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -
WebUpd8 PPA中打包了一个小脚本,我将其打包为一个.deb下载链接,因此您不必添加整个PPA-它会自动导入所有丢失的GPG密钥。
下载并安装Launchpad-getkeys(忽略其版本中的〜natty,它可用于从Karmic到Oneiric的所有Ubuntu版本)。安装后,打开终端并输入:
sudo launchpad-getkeys
如果您是代理人,事情会有些复杂,因此请参阅此以获得更多信息
我在安装Heroku时遇到了同样的问题。下面的链接解决了我的问题-
http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html
解决NO_PUBKEY
问题后,仍保留以下问题
W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>
为了解决这个问题,我在终端中执行了以下命令:
sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update
来源- 解决链接
确保已apt-transport-https
安装:
dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update;
sudo apt-get install apt-transport-https -y"
添加存储库:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list
安装Linux版Skype:
sudo apt-get update
sudo apt-get install skypeforlinux -y
资料来源:https : //community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756
更一般而言,以下方法应适用于每个存储库。首先,在最终的搜索引擎帮助下,在程序提供者的网站上搜索如下所示的文本:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----
例如,这样的文本显示在http://deb.opera.com上。复制段落,将其粘贴到您在桌面上创建的空文件中。这将生成密钥文件。
然后继续输入密钥:
现在,您可以删除以前创建的密钥文件。
好!我终于找到了路!
我已经测试了所有方法来修复GPG错误NO_PUBKEY,但对我没有任何帮助。
我已经删除了/etc/apt/trusted.gpg.d文件夹的全部内容
cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update
而且我使用Y-PPA-Manager方法是因为我懒于手动创建所有pubkey(太多):http : //www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/
再次运行sudo apt-get update并最终完成所有工作!坦克!
基于源:在https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540上发布#17