作者的 GPG 子密钥已过期,我该怎么办?

dis*_*kes 2 encryption gpg package-management pgp software-updates

我正在尝试下载某个软件的更新,我的软件包管理器说密钥无效,因此警告我。

W: Failed to fetch https://deb.torproject.org/torproject.org/dists/buster/InRelease The following signatures were invalid: EXPKEYSIG 74A941BA219EC810 deb.torproject.org archive signing key

然后是在 GPG 中列出密钥后的输出。

pub   rsa2048/0xEE8CBC9E886DDD89 2009-09-04 [SC] [expires: 2022-08-05]
      Key fingerprint = A3C4 F0F9 79CA A22C DBA8  F512 EE8C BC9E 886D DD89
uid                   [ unknown] deb.torproject.org archive signing key
sub   rsa2048/0x74A941BA219EC810 2009-09-04 [S] [expires: 2020-11-23]
      Key fingerprint = 2265 EB4C B2BF 88D9 00AE  8D1B 74A9 41BA 219E C810
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该子项在撰写本文时已过期。

我访问了开发者的网站,签名密钥没有变化。如何在不跳过签名过程的情况下继续软件更新?

Fre*_*ddy 7

2019.www.torproject.org/docs/debian.html.en开始,您可以运行这些命令将密钥添加到受信任的 apt 密钥中,我只添加了sudo

curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)

之后sudo apt-key list(或gpg --list-keys) 应列出更新的密钥:

pub   rsa2048 2009-09-04 [SC] [expires: 2024-11-17]
      A3C4 F0F9 79CA A22C DBA8  F512 EE8C BC9E 886D DD89
uid           [ unknown] deb.torproject.org archive signing key
sub   rsa2048 2009-09-04 [S] [expires: 2022-06-11]
Run Code Online (Sandbox Code Playgroud)

现在,如果您希望保持密钥最新,您可以安装密钥环包:

sudo apt update
sudo apt install deb.torproject.org-keyring
Run Code Online (Sandbox Code Playgroud)

deb.torproject.org-keyring软件包包含当前版本的存档签名密钥 (/etc/apt/trusted.gpg.d/deb.torproject.org-keyring.gpg),用于验证 tor 软件包的真实性。

如果您安装了该软件包,则只sudo apt update; sudo apt upgrade​​要有可用的更新版本的密钥,您就会在下次运行时自动更新该密钥(假设当前安装的密钥尚未过期,无法通过 apt 获取该软件包)。