在apt-get更新后出现KEYEXPIRED错误消息时该怎么办?

在一个基于debian的系统上更新我的软件包时

sudo apt-get update 

我有这个错误信息:

 Reading package lists... Done W: GPG error: ftp://ftp.fr.debian.org stable/non-US Release: The following signatures were invalid: KEYEXPIRED 1138684904 

我该怎么办才能解决这个问题?

要查找任何到期的存储库密钥及其ID,请按如下所示使用apt-key

 LANG=C apt-key list | grep expired 

您将得到类似于以下的结果:

 pub 4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28] 

密钥ID是在这种情况下/ ie BE1DB1F1之后的位。

要更新密钥,请运行

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

注意:如果软件包维护者尚未(尚)上传新密钥,更新密钥显然不起作用。 在这种情况下,除了联系维护人员,对您的分发等提出错误之外,您可以做的事情很less。

一个class轮更新所有过期的钥匙:(感谢@ryanpcmcquen)

 for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done 

你需要得到新的密钥并添加它,在这一点上,将检测到它,而不是抱怨。 这通常不会发生,但它有时会发生。 你真正需要的是知道你需要添加的密钥的hex代码; 一旦你有这个,从那里是非常下坡。

一些例子:

  • 为后端添加键 :前几行是你要的,尽pipe你需要有它想要的键。

  • 增加键阿拉Ubuntu

在Debian Wiki上关于SecureAPT ,我发现我应该从/etc/apt/sources.list中删除包含non-us的行。

我真的这样做,它的工作。

我有类似的错误,但问题是在系统时间。 这一年是1961年:)

我纠正了系统date/时间,之后可以更新没有亲

当date不正确时也可能发生。

检查date

 date 

如果configuration错误,请按照以下步骤设置时区和date自动同步。

 apt-get install ntp ntpdate && service ntp stop dpkg-reconfigure tzdata ntpdate-debian service ntp start 

你不必任何事情。 这只是一个警告,你可以从W:前缀看到。