linux 更换 软件源后 GPG错误

转载 2015年11月21日 14:34:39

linux 更换 软件源后 GPG错误

linux 软件源 GPG 签名 密钥

linux 更换 软件源后 GPG错误

http://my.oschina.net/emptytimespace/blog/83633

如文章【1】中提到:

1,对于DEBIAN系:

如果您的套件支援APT-KEY金鑰管理(例如Ubuntu 6.06或者之後的版),請先安裝DRBL的金鑰 (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A),有兩個方式可以來安裝。
方法1: "wget -q http://drbl.nchc.org.tw/GPG-KEY-DRBL -O- | sudo apt-key add -" 。
方法2: 或是由key server下載,KeyID是D7E8DF3A,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A",然後再執行"gpg -a --export D7E8DF3A | apt-key add -".
如法砲制,推荐使用上面方法1,下载发行版的GPG并添加金匙:


1
wget -q http://.../Release.gpg  | sudo apt-key add -


2,对RedHat/Fedora/CentOS系:

RedHat/Fedora/CentOS 如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root 請先安裝DRBL的金鑰(ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A),這樣可以進一步確認您安裝的程式是本計畫所發行的程式。有兩個方式可以來安裝。
方法1: "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" 。
方法2: 由key server下載,KeyID是D7E8DF3A,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A",然後再執行"gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL". 如果你要查詢系統是否已經有匯入數位簽章的話,可以這樣查詢: rpm -qa gpg-pubkey*。

3,对于SuSE系:

SuSE 如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root 請先安裝DRBL的金鑰(ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A),這樣可以進一步確認您安裝的程式是本計畫所發行的程式。有兩個方式可以來安裝。
方法1: "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" 。
方法2: 由key server下載,KeyID是D7E8DF3A,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A",然後再執行"gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL".


此处以下的内容已经可以忽略不看了,菜鸟的山寨方法。

-----------------------------------------------------------------------------------

在将官方默认的更新远换成比如mirrors.ustc.edu.cn的其他源时,或在安装系统debian testing后想更换成sid的源来升级成sid系统时,经常遇到GPG错误的问题,如刷新软件库时如下提示:

GPG 错误:http://mirrors.ustc.edu.cn sid InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 07DC563D1F41B907无法下载 http://http.us.debian.org/debian/dists/sid/InRelease

搜集网上的解决办法有几个:

1)

1
2
3
The fix is just to back up sources.list, delete everything in it and run "apt-get update". After the update replace sources.list with the backup and run "apt-get update" again. You should not get the error then.
 
备份sources.list,然后把sources.list中的东西删空,运行"apt-get update",然后再用刚刚的备份将"apt-get update"复原,再运行"apt-get update"
此方法不行,但似乎有更新缓存的作用? 2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
症状:
代码:
sudo apt-get update
W: GPG error: http://apt.tt-solutions.com dapper Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 06EA41DE4F6C1E86
 
解决方法:
代码:
gpg --keyserver subkeys.pgp.net --recv 4F6C1E86
gpg --export --armor 4F6C1E86 | sudo apt-key add -
 
说明:
若缺少其他公钥,则将命令中两处4F6C1E86改为NO_PUBKEY 06EA41DE4F6C1E86中最后8位即可!
<p>
<br>
 
</p>
或使用mit的:
# gpg --keyserver pgpkeys.mit.edu --recv-key AED4B06F473041FA
# gpg -a --export AED4B06F473041FA |  apt-key add -
 
或服务器:keys.gnupg.net,似乎是最官方的。
 
如果是Ubuntu PPA的
代码:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com

然后更新源:

$ sudo apt-get update

使用此方法成功,但是,此方法添加的密钥似乎不是明显官方的.可以看到/etc/apt目录下有"trust.gpg"文件,./trust.gpg.d文件夹下有"debian-archive-wheezy-stable.gpg"等文件.考虑到安全性和解决方案的长久性,显然针对此debian系统的sid发行版,我们需要类似"debian-sid.gpg"的文件来代替这些文件,而不是全部都从第三方中下载的验证文件来顶事.而且可以看到,使用当前的这种方法后,以上的".gpg"文件确实发生了改变,说明这几个文件确实需要改变.

为此我们查看更新源网址"http://mirrors.ustc.edu.cn/debian/dists/sid/"中的文件,发现有一个文件"Release.gpg",但是不同的是此文件可以很容易的作为文本文档打开,而系统中的"debian-archive-wheezy-stable.gpg"文件并不能作为文本文件打开.那么推测,系统中的文件经过了某种加密,可是加密手段不知,此探索中断...既然问题已经解决了就留待以后吧.(见补充2)


3)另副一种更新或禁用缓存的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
转贴自:http://www.ubuntugeek.com/how-to-fix-the-ubuntu-gpg-error-badsig.html
 
If you are seeing Ubuntu GPG Error BADSIG use the one of the following methods to fix
 
Error Message
 
W: GPG error: http://archive.canonical.com intrepid Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key
 
Method 1
 
Try to run the following comamnds from terminal
 
    $ sudo -i
 
    # apt-get clean
 
    # cd /var/lib/apt
 
    # mv lists lists.old
 
    # mkdir -p lists/partial
 
    # apt-get clean
 
    # apt-get update
 
Method 2
 
Try to run the following comamnds from terminal
 
    sudo aptitude -o Acquire::http::No-Cache=True -o Acquire::BrokenProxy=true update
 
    sudo apt-get update

暂完结。

补充1:

在文章: 使用apt-mirror建立debian的源(http://zx0319.blogspot.com/2011/03/apt-mirrordebian.html

中获得一个貌似很正规的做法:

1
2
3
4
如果出现public key的问题,通过以下指令解决。
apt-get install debian-keyring debian-archive-keyring
apt-key update
apt-get upgrade

补充2:

在软件源设置选项中有 “身份验证” 选项卡中,可以Import key File,这是导入“Release.gpg”文件的接口?需要时可以测试下。

补充:官方发行版介绍中提到:

数据的完整性是通过一个经数字签名的 Release 文件得到满足的。为了保证发行版中的每个文件确实属于该发行版,每个 Packages 文件的 MD5 校验码都被复制到 Release 文件中。 
该文件经数字签名之后被保存在文件 Release.gpg 中,用的是当前版本的存档签名密钥。这个附加的签章是给稳定版 (stable)与被淘汰的稳定版 (oldstable) 释出用的,由稳定版释出团队的成员用一把专门产生用的离线金钥制作而成。

这应该是证实了我们的猜想。


【引用】

【1】http://drbl.nchc.org.tw/one4all/desktop/

gpg公钥验证错误的解决

执行apt-get update时出现如下错误: TodLeigh:/home/lh# apt-get update获取:1 http://debian.ustc.edu.cn testing Rel...
  • TodLeigh
  • TodLeigh
  • 2008年01月05日 19:25
  • 5676

ubuntu12.04 更新完源 出现 GPG error

W: GPG error: http://mirror.bjtu.edu.cn precise/ Release: The following signatures couldn't be verif...
  • chen517611641
  • chen517611641
  • 2014年03月19日 21:53
  • 2521

Ubuntu14.04 运行命令 sudo apt-get update出现GPG error

http://askubuntu.com/a/512173/198920 sudo apt-get clean sudo mv /var/lib/apt/lists /var/lib/apt/li...
  • u013038461
  • u013038461
  • 2014年09月24日 09:42
  • 2299

When R installation: W: GPG error:

Error Problem: W: GPG error: http://ftp.ctex.org precise/ Release: The following signatures couldn'...
  • lj695242104
  • lj695242104
  • 2015年04月16日 16:01
  • 591

ubuntu 创建本地deb软件包时,对Release文件做gpg签名

Ubuntu 16.04 (xenial) 在将本地deb软件包创建repo时候,跟14.04以前的版本相比,强制要求gpg对Release文件签名,否则无法使用: Reading package l...
  • u011403366
  • u011403366
  • 2017年06月02日 13:27
  • 951

Ubuntu源问题(换源软件源更新源)

问题一: 执行命令 sudo apt-get update 错误描述如下: W: Failed to fetch http://mirrors.sohu.com/ubuntu/dists/prec...
  • langb2014
  • langb2014
  • 2015年10月04日 13:39
  • 6879

修改Raspbian软件源以加快软件下载速度

材料: 树莓派(已经连好电源以及插入写好操作系统的SD卡)笔记本电脑1台PuTTY 步骤1:登录到Raspbian的命令行界面 步骤2:修改Raspbian的软件源 软件源是Linux...
  • chenxd1101
  • chenxd1101
  • 2016年11月05日 09:47
  • 694

Ubuntu:apt-get update出错:由于没有公钥,无法验证下列签名

错误:1 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY ...
  • qq_24805141
  • qq_24805141
  • 2016年10月17日 14:49
  • 2109

更新linux时候提示无法“由于没有公钥,无法验证下列签名 ***”的解决方案

新安装的Ubuntu在使用sudo apt-get update更新源码的时候出现如下错误: W: GPG 错误:http://ppa.launchpad.net precise Release: 由...
  • loovejava
  • loovejava
  • 2014年03月23日 00:25
  • 23526

树莓派 Learning 002 装机后的必要操作 --- 04 添加软件源 之 添加公钥 --- 解决“由于没有公钥,无法验证下列签名”问题

树莓派 Learning 002 装机后的必要操作 — 01 添加软件源 之添加公钥 之 解决“由于没有公钥,无法验证下列签名”问题当你添加完Debian的软件源后,在终端中执行sudo apt-ge...
  • github_35160620
  • github_35160620
  • 2016年08月01日 05:26
  • 18218
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 更换 软件源后 GPG错误
举报原因:
原因补充:

(最多只允许输入30个字)