添加非官方的源是update后会出现没有公钥的gpg错误提示,对于经常更新源来说,很是麻烦。解决的办法是导入公钥,用如下语句:
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 提示所缺少的那个公钥
gpg --armor --export 公钥串 | apt-key add -
这是我自建源在更新时出现了问题:
正在读取软件包列表... 完成
W: GPG error: lenny Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 07DC563D1F41B907
W: 您可能需要运行 apt-get update 来解决这些问题
gdeb:~# gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907
gpg: 已创建目录‘/root/.gnupg’
gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/root/.gnupg/secring.gpg’已建立
gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立
gpg: 下载密钥‘1F41B907’,从 hkp 服务器 subkeys.pgp.net
gpg: 公钥服务器超时
gpg: 从公钥服务器接收失败:公钥服务器错误
key服务器出现了问题,需要换一台key服务器。建议使用'wwwkeys.eu.pgp.net'。
gdeb:~# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 07DC563D1F41B907
gpg: 下载密钥‘1F41B907’,从 hkp 服务器 subkeys.pgp.net
gpg: 公钥服务器超时
gpg: 从公钥服务器接收失败:公钥服务器错误
gdeb:~# gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907
gpg: 下载密钥‘1F41B907’,从 hkp 服务器 subkeys.pgp.net
gpg: /root/.gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 1F41B907:公钥“Christian Marillat ”已导入
gpg: 没有找到任何绝对信任的密钥
gpg: 合计被处理的数量:1
gpg: 已导入:1
完整的语句如下:
-----------------
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 07DC563D1F41B907
gpg --keyserver keyring.debian.org --recv-keys 1F41B907
gpg --armor --export 1F41B907 | apt-key add -
apt-get update
-----------------
这样,再用apt-get update就不会有gpg error了。
2、
在添加一些源的时候,更新往往需要公钥,实例如下:
添加launchpad.net的源安装UNetbootin,ubuntu10.04源如下:
deb lucid main
deb-src lucid main
当sudo apt-get update时提示如下:
W: GPG签名验证错误: lucid Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY D45DF2E8FC91AE7E
注意NO_PUBKEY后面就是需要验证的,命令输入:
gpg --keyserver subkeys.pgp.net --recv
D45DF2E8FC91AE7E
gpg --export --armor
D45DF2E8FC91AE7E | sudo apt-key add -
3、一行命令解决UBUNTU更新源缺少公钥问题
更新源,尤其是PPA源或其他第三方源时经常会碰到缺少公钥的问题:
W: GPG 错误: maverick Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 97F6E5D34865CF4F
NO_PUBKEY 后面的一串东西就是缺少的公钥的ID。
网络上这方面的解决方法也不少,有部分帖子由于年代久远,新版本gpg命令的参数改变,已经无法使用……对于不熟悉脚本的新手(像我这样)来说只能痛苦地输两行命令。当缺少的公钥很多时,就非常痛苦了……
其实用一条命令就可以添加公钥了:
代码:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv ID
(将ID替换为公钥ID的后8位)
如果有多个公钥需要同时添加的话,尝试一下:
代码:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ID1 ID2
具体代码如下:
liangshihong@liangshihong-kmimagine:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 97F6E5D34865CF4F
阅读(8589) | 评论(1) | 转发(0) |