Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1285785
  • 博文数量: 273
  • 博客积分: 5865
  • 博客等级: 准将
  • 技术积分: 3280
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-11 10:01
文章分类

全部博文(273)

文章存档

2015年(33)

2014年(11)

2013年(11)

2012年(136)

2011年(32)

2010年(50)

分类: LINUX

2010-11-14 10:22:13

添加非官方的源是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



阅读(8493) | 评论(1) | 转发(0) |
0

上一篇:家在邓州

下一篇:ubuntu 怎么安装 firefox 4.0

给主人留下些什么吧!~~

hotfirewall2010-11-14 15:08:16