当前位置: 首页>>技术教程>>正文


如何解决缺少的GPG密钥?

, , , ,

问题描述

我刚安装了Ubuntu 12.04,并添加了一些回购,当我做了apt-get update时,我错过了gpg密钥。

以下命令似乎不适用于我:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

如何解决这个问题?

最佳解决办法

我喜欢这个解决方案,re-download是Ubuntu密钥服务器中缺少的密钥。

对于Ubuntu

就我而言

 Reading package lists... Done  
 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 2EA8F35793D8809A

以下是添加错误消息中提到的缺失键的命令。

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

因此,我带着缺失的密钥2EA8F35793D8809A,并要求keyserver.ubuntu.com将它添加到我在apt中的密钥列表中。

对于linux mint您的key server略有不同keyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

替代关键服务器试用keyserver.ubuntu.com

次佳解决办法

有一个名为Y PPA manager的软件它可以帮助解决GPG密钥错误。 Y PPA manager

安装 –

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

安装后,启动它,然后转到advance并选择“导入所有缺少的GPG密钥”

第三种解决办法

首先在终端中输入以下命令

 sudo rm /var/lib/apt/lists/* -vf

然后通过在终端中输入以下命令来更新您的系统

 sudo apt-get update && sudo apt-get upgrade

在此之后,应该没有错误,一切都应该正常工作。

第四种办法

使用apt-key adv --recv-keys的自动下载可能不适用于防火墙。

在这种情况下,请在Web浏览器中打开Ubuntu Key Server的网页并搜索字符串0x<hexadecimal code of your missing key>

updates,repository,gnupg,keys,ubuntu

打开pub部分中的链接。保存密钥内容(从-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----)作为文件。

updates,repository,gnupg,keys,ubuntu

然后运行:

sudo apt-key add <file-with-saved-key>

来源:http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html

第五种办法

对于Ubuntu 12.04 Precise:永久解决方案

在添加新存储库和更新存储库列表之后发生此错误消息。这是由于服务器的地址不再有效。所以只需将地址更改为好。

  1. 用文本编辑器打开文件~/.gnupg/gpg.conf。在终端:gedit ~/.gnupg/gpg.conf

  2. 然后,在这个文件中,找到下面的粗体行(第116行)(应该默认如下):[…] keyserver hkp://keys.gnupg.net#keyserver mailto:pgp-public-keys@keys.nl.pgp .net#keyserver ldap://keyserver.pgp.com

  3. 然后添加下面的粗线,最后给出以下结果:(将#添加到第二行,如下注释掉旧地址)[…] keyserver http://keyserver.ubuntu.com # keyserver hkp://keys.gnupg.net#keyserver mailto :pgp-public-keys@keys.nl.pgp.net#keyserver ldap://keyserver.pgp.com

  4. 保存该文件并尝试再次更新:在终端:sudo apt-get update

第六种办法

最简单的方法是用Y PPA MAnager

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

从Dash打开Y PPA管理器

updates,repository,gnupg,keys,ubuntu

输入您的管理员密码

updates,repository,gnupg,keys,ubuntu

双击高级选项

updates,repository,gnupg,keys,ubuntu

单击尝试导入所有缺少的GPG密钥

updates,repository,gnupg,keys,ubuntu

点击确定修复它

第七种办法

基于nelaar回答:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

该脚本将所有错误转储到一个临时文件中,然后通过它们循环导入缺少的密钥。

第八种办法

首先在终端中输入以下命令

sudo rm /var/lib/apt/lists/* -vf

然后通过在终端中输入以下命令来更新您的系统

sudo apt-get update && sudo apt-get upgrade

在此之后,应该没有错误,一切都应该正常工作。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/363.html,未经允许,请勿转载。