由于 GPG 密钥错误,无法执行“sudo update”

由于 GPG 密钥错误,无法执行“sudo update”

我之前可以,但后来出现这个错误,之后我就无法再这样做了:

7,898 kB were fetched in 2 s (3,370 kB/s).
Reading package lists… Done
Building dependency tree… Done
Status information is being read in… Done
Update available for 6 packages. Run "apt list --upgradable" to view them.
W: An error occurred while verifying the signature. The depot has not been updated and the previous index files are used. 
GPG Error: https://repo.protonvpn.com/debian stable InRelease: The following signatures could not be verified because their public key is not available: NO_PUBKEY 4EDE055B645F044F 
W: Failed to get from https://repo.protonvpn.com/debian/dists/stable/InRelease The following signatures could not be verified because their public key is not available: NO_PUBKEY 4EDE055B645F044F
W: Some index files could not be downloaded. They were ignored or old ones were used in their place.

答案1

欢迎 Srecko 来到论坛。

我正在使用谷歌翻译来查看英文版本。希望我们能够像这样顺利沟通。

问题

ProtonVPN 存储库的公钥丢失,导致签名验证失败。

制造商的说明

我认为他们没有遵循标准流程,这让事情变得困难。但是,如果您按照步骤 1 到 4 操作,可能会解决您的问题。

参考:https://protonvpn.com/support/official-linux-vpn-mx-linux/

  1. 安装 Proton VPN 存储库

只需双击下载的 DEB 文件并按照默认包管理器给出的提示进行操作(或在 Xfce 桌面上右键单击→安装 Deb 文件)。

请不要尝试检查此发布包的 GPG 签名(dpkg-sig –verify)。我们的内部发布流程分为几个部分,发布包使用 GPG 密钥签名,而存储库使用另一个 GPG 密钥签名。因此密钥不匹配。

如果您想检查 repo 包的完整性,可以使用以下命令检查其校验和:

echo "c68a0b8dad58ab75080eed7cb989e5634fc88fca051703139c025352a6ee19ad protonvpn-stable-release_1.0.3-2_all.deb" | sha256sum --check -


这个答案的其余部分仅供参考。

GPG 缺少密钥错误

当 GPG 显示 PKI 公钥丢失时,以下是验证 PKI 公钥的方法。

  1. 从源头开始

我无法使用 curl 列出 repo.protonvpn.com/debian/ 目录,但您可以在 Web 浏览器中查看它:https://repo.protonvpn.com/debian/.公钥就在那里。

  1. 密钥 ID

密钥 ID 是从公钥派生出来的。下载并派生密钥的方法如下:

wget -O protonvpn_public_key.asc https://repo.protonvpn.com/debian/public_key.asc
gpg --import --with-fingerprint protonvpn_public_key.asc

它与您在帖子中给出的输出相匹配。

gpg:密钥 4EDE055B645F044F:公钥“Proton Technologies AG [电子邮件保护]“进口

GPG 说明

Debian 和 Ubuntu 都使用 GPG(GNU 隐私卫士)进行包管理和维护。它执行以下功能:

  1. 包裹签名
  2. 存储库验证
  3. 密钥管理
  4. 安全增强功能

错误提示软件无法更新(或维护),因为 GPG 找不到密钥来验证其安全性。Ubuntu 存储库配置必须指向正确的 URL,以便找到公钥。

配置:
存储库配置位于文件 /etc/apt/sources.list和目录中/etc/apt/sources.list.d/ (在另一个文件内)。

关键位置:
https://repo.protonvpn.com/debian/public_key.asc

因此你必须确保你的计算机的配置指向正确的位置。

日志

日志是查找根本原因的重要资源。对于此问题,APT 日志最为适用。

tail -n 100 /var/log/apt/history.log
cat /var/log/apt/history.log | grep -E -i "error|refused|failed|proton"
sudo grep -E -i "error|refused|failed|proton" /var/log/apt/history.log /var/log/auth.log /var/log/syslog /var/log/dpkg.log

相关内容