网站搜索

[解决方法] Apt 警告:签名密钥使用弱算法


在 apt 命令输出中收到弱签名密钥警告?这是原因,以及如何在 Ubuntu 24.04 中摆脱它。

在 Ubuntu 24.04 中添加 PPA 或第三方源存储库后,您可能会在 apt 命令(通常是 apt update)输出中收到以下类似警告:

W:https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu/dists/noble/InRelease:密钥签名 0AB215679C571D1C8325275B9BDB3D89CE49EC21 使用弱算法(rsa1024)

该警告也可能发生在 Debian 及其基于 apt 包管理器 2.7.13 或更高版本的系统中。

由于加密策略更新,apt now(自 v2.7.13 起,请参阅提交)要求使用以下公钥算法之一对存储库进行签名:

  • 具有至少 2048 位密钥的 RSA
  • Ed25519
  • Ed448

在撰写本文时用于启动板 PPA 的 1024 位 RSA 密钥、DSA 密钥(无法再使用)和 ECC 密钥(NIST P-{256,384,521}、Brainpool P-{256,384,512} 、secp256k1)被广泛认为是不安全的。

Ubuntu 24.04 包括带有策略更新的 apt 2.7.14(请参阅讨论页面)。到目前为止,UNSAFE 键仍然有效,但您会看到如上所述的警告。

对于 Ubuntu PPA(托管在 launchpad.net 上),无需执行任何操作!Ubuntu 团队将把密钥升级到 4096 位 RSA。

PPA 目前正在升级到 4096 位 RSA 密钥,我们预计升级将在发布时完成。 PPA 所有者不需要(也不可能)采取任何行动。

如果您当前使用的是发布之前的 24.04,则当警告变为错误时,您将需要刷新 PPA 签名密钥。我们计划在 add-apt-repository 中提供简单的功能来执行此操作,这样您就不需要删除并重新添加 PPA。

如何覆盖政策变更

因此,如果您迫不及待地等待维护人员升级密钥,或者您只是信任当前的密钥,那么您可以添加一条规则来消除警告。

1. 首先,按 Ctrl+Alt+T 打开终端窗口。打开后,运行命令为 apt 创建配置文件:

sudo nano /etc/apt/apt.conf.d/99weakkey-warning

这里我使用 nano 命令行文本编辑器适用于大多数桌面,您可以将其替换为 gnome-text-editor for 24.04 默认 GNOME,或者其他编辑器取决于您的桌面环境。并且,您可以将文件名 99weakkey-warning 替换为您想要的任何内容。

2. 文件打开时,添加以下行并根据您的需要更改(或添加)值

APT::Key::Assert-Pubkey-Algo“>=rsa1024,ed25529,ed448”;

默认密钥算法为“>=rsa2048,ed25529,ed448”。就我而言(请参见上面的屏幕截图),警告密钥使用“rsa1024”。因此,我将值 >=rsa2048 替换为 >=rsa1024

例如,您希望允许 secp256k1 (运行 sudo apt update 以获取警告中的密钥算法),然后将该行替换为:

APT::Key::Assert-Pubkey-Algo ">=rsa2048,ed25529,ed448,secp256k1";

或者,将其留空,这样所有受 GnuPG 信任的密钥算法都应该被允许,所以它将是:

APT::Key::Assert-Pubkey-Algo "";

编辑完成后,按Ctrl+S保存文件,按Ctrl+X退出。并且,运行 sudo apt update 命令来验证更改。

如何恢复

要恢复更改,只需在终端中运行命令 (Ctrl+Alt+T) 删除您创建的配置文件即可:

sudo rm /etc/apt/apt.conf.d/99weakkey-warning

最后,运行 sudo apt update 刷新系统包缓存。