在 WSL2 的 Ubuntu 24.04 中,系统默认的 APT 仓库提供的 GnuPG 版本通常是 2.4.x。要升级到支持后量子密码学(Kyber / ML-KEM)的 2.5.x 版本,我们需要添加 GnuPG 官方提供的 APT 仓库。

以下是完整的升级步骤,你可以直接在 WSL2 的 Ubuntu 24.04 终端中依次执行这些命令:

如果以前通过编译方式安装了gnupg,回退后重启。

第一步:导入官方签名密钥

wget -O- https://repos.gnupg.org/deb/gnupg/noble-devel/gnupg-signing-key.gpg | sudo gpg --dearmor --yes --output /usr/share/keyrings/gnupg-keyring.gpg

第二步:设置密钥权限

sudo chmod 644 /usr/share/keyrings/gnupg-keyring.gpg

第三步:添加 GnuPG 官方 APT 仓库

echo -e 'Types: deb\nURIs: https://repos.gnupg.org/deb/gnupg/noble-devel/\nSuites: noble\nComponents: main\nSigned-By: /usr/share/keyrings/gnupg-keyring.gpg' | sudo tee /etc/apt/sources.list.d/gnupg.sources

第四步:更新软件包列表并执行升级

sudo apt update
sudo apt install gnupg gnupg-agent

update时即使报以下错误也不影响

错误:6 ​ ./ Release 404 Not Found [IP: 2a01:4f8:151:7306::2 443]  
E: 仓库 “​ ./ Release” 没有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源。

第五步:重启 GPG Agent 并验证版本

# 终止旧版 agent 进程
gpgconf --kill gpg-agent

# 查看当前版本
gpg --version

验证升级结果
当你运行 gpg --version 时,输出中应该会显示类似 gpg (GnuPG) 2.5.20(或 2.5.19+)的版本号,并且在底部的 Pubkey: 算法列表中,你应该能看到 ML-KEM(Kyber 的标准化名称)或者与后量子密码学相关的算法支持。此时你的环境就已经支持生成并导出 Kyber 私钥了。

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
X087lQnwTQrinkVOKoR3gffiKlFKXsgY7p0HAA==
=l76f
-----END PGP PUBLIC KEY BLOCK-----