GPG错误:http://archive.debian.org lenny/updates 发行版:以下签名无效:KEYEXPIRED 1356982504

7
我在更新我的源列表时遇到了以下错误。
$ sudo apt-get update

Reading package lists... Done

W: GPG error: http://archive.debian.org lenny/updates Release: The following signatures were invalid: KEYEXPIRED 1356982504

W: You may want to run apt-get update to correct these problems

如何解决这个问题?
3个回答

12

要查找任何已过期的存储库密钥及其ID,请按以下方式使用apt-key:

  apt-key list | grep expired
你将会得到类似以下的结果:
  pub   4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]

关键 ID 是斜杠后面的位,即在此情况下为 BE1DB1F1。

若要更新密钥,请运行:

  sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1

我需要在我的服务器上执行这个命令。它不会出现问题吧?我是 Linux 领域的新手,所以想问一下。 - Bhaskar Dabhi
你是否已经安装了debian-archive-keyring版本2010.08.28~lenny1? - Rupesh
确保系统时间正确。手动升级或安装“debian-archive-keyring”,以使其成为正确的版本。然后再次运行“apt-get update”,问题应该得到解决。 - Rupesh
尝试使用以下命令:wget --no-check-certificate https://ftp-master.debian.org/keys/archive-key-6.0.asc && apt-key add archive-key-6.0.asc apt-get update apt-get install --reinstall debian-keyring debian-archive-keyring apt-get update - Rupesh
1
看起来 keys.gnupg.net 不再是有效的地址:pgp.mit.edu 在 2022 年可用。 - Drist
显示剩余2条评论

12

我曾遇到同样的问题,只需更改系统日期即可解决

date --set 2008-01-01

然后尝试更新

apt-get update

4
你被踩是因为这个解决方案一开始看起来确实很糟糕,但当你需要维护一些老旧的“僵尸”(比如2020年的旧Debian Jessie基础盒子 :))时,时间旅行可能是最便宜的方法(如果你能做到的话)。否则,你将花费大量时间寻找例如说让旧apt通过KEYEXPIRED(尚未找到)等问题的解决方案,这可能不值得你的时间。如果可以的话,关闭所有服务,将你的盒子设置为运行级别1,时间旅行,apt更新,恢复日期,交叉手指并重新启动/重启/任何操作。 - Marcin Orlowski
嘿,这对我来说是一个很好的解决方案,因为我正在创建一个基于lenny的一次性虚拟机来调试一些必须与旧的2.6驱动程序配合工作的代码。我在一周内不需要这个虚拟机,而且它也不会连接到互联网。我没有任何损失,通过这种方式做事情更加简单,而且可以节省时间。 - clearlight
诚实是一个伟大的解决方案,几乎没有人建议,即使在Debian邮件列表中(我搜索了很多),出于安全考虑,我需要在封闭系统中使用它,没有网络访问,我需要它来让旧的256 MB 32位 PC正常工作,感谢上帝Debian存在,他们提供了旧版本的软件库,这与大多数Linux发行版相反(甚至Ubuntu也放弃了他们的旧版本服务器)。 - Salem
倒退时间是一个绝妙的解决方案,当我尝试使用古老的 Debian (Jessie) 版本设置 QEMU 时,它为我奏效了。 - Anthony DeRosa
这是一个可行的解决方案,但如果您使用VPS,则不幸的是无法使用。 - phil

9

最终,任何一个答案都没有解决我的问题。

我所做的是重新检查最新可用的资源。在我的情况下

###### Debian Main Repos
deb http://ftp.au.debian.org/debian/ wheezy main contrib non-free 
deb-src http://ftp.au.debian.org/debian/ wheezy main contrib non-free 

###### Debian Update Repos
deb http://security.debian.org/ wheezy/updates main contrib non-free 
deb http://ftp.au.debian.org/debian/ wheezy-proposed-updates main contrib non-free 
deb-src http://security.debian.org/ wheezy/updates main contrib non-free 
deb-src http://ftp.au.debian.org/debian/ wheezy-proposed-updates main contrib non-free 

我使用这个网站生成它们:https://debgen.simplylinux.ch/ Debian源代码生成器。
然后我更新仓库中的密钥。
apt-get install debian-keyring debian-archive-keyring
apt-key update

再次尝试更新。
apt-get update

那应该可以解决这个问题。
Fetched 67.5 kB in 2min 0s (560 B/s)
Reading package lists... Done

如果您仍然遇到某些键的问题,请按照以下步骤逐个解决。
您需要从另一个服务器手动添加缺失的键。在本例中,缺失的键是55BE302B。
因此,您需要执行以下操作:
gpg --keyserver pgpkeys.mit.edu --recv-key  55BE302B
gpg -a --export 55BE302B | sudo apt-key add - 

它将导入密钥,然后您将它们添加到源中。

root@XXX:~# gpg --keyserver pgpkeys.mit.edu --recv-key  55BE302B
gpg: requesting key 55BE302B from hkp server pgpkeys.mit.edu
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 55BE302B: public key "Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
root@XXX:~# gpg -a --export 55BE302B | sudo apt-key add -     
OK

我希望这篇文章可以帮助到遇到同样问题的人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接