当前位置:首页 > 系统教程 > 正文

apt-key弃用终极解决方案:从apt-key迁移到GPG直接管理密钥

apt-key弃用终极解决方案:从apt-key迁移到GPG直接管理密钥

手把手教你用GPG管理Linux软件源密钥,保障系统安全更新

随着Debian/Ubuntu等发行版更新,apt-key命令已被正式弃用。这意味着以往使用apt-key add添加密钥的方式可能会在将来失效,甚至影响系统更新。本文将详细讲解如何使用GPG密钥管理替代apt-key,确保你的软件源验证Linux系统安全不受影响。

apt-key弃用终极解决方案:从apt-key迁移到GPG直接管理密钥 apt-key弃用  GPG密钥管理 软件源验证 Linux系统安全 第1张

1. 查看当前apt-key管理的密钥

执行apt-key list,你会看到类似如下的输出,显示了所有已导入的GPG密钥及其指纹。

/etc/apt/trusted.gpg--------------------pub   rsa4096 2017-02-22 [SC]      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88uid           [ unknown] Docker Release (CE deb) ...

2. 导出密钥并转换为GPG格式

以Docker密钥为例,记录其ID(如上8D81803C0EBFCD88),导出为ASCII文件:sudo apt-key export 0EBFCD88 > docker.asc然后使用gpg --dearmor转换为二进制格式:gpg --dearmor --output docker.gpg docker.asc

3. 部署密钥到系统目录

建议将转换后的GPG密钥文件放入/etc/apt/keyrings/目录(如不存在则创建):sudo mkdir -p /etc/apt/keyringssudo mv docker.gpg /etc/apt/keyrings/然后修改对应的source列表(如/etc/apt/sources.list.d/docker.list),添加signed-by选项:deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu focal stable

4. 添加新软件源的最佳实践

以添加GitLab官方源为例,可以直接下载其GPG公钥并dearmor:wget -O - https://packages.gitlab.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/gitlab.gpg >/dev/null然后在sources.list中对应条目指定signed-by。这样就完全避免了使用apt-key。

5. 清理旧的apt-key密钥

确认所有源都已迁移后,可以删除旧密钥:sudo apt-key del "Docker Release"或通过指纹删除。

6. 测试并更新

运行sudo apt update,确保没有GPG错误。如果一切正常,说明你的GPG密钥管理已成功替代apt-key。

通过以上步骤,你不仅解决了apt-key弃用带来的兼容性问题,还遵循了最新的软件源验证规范,提升了Linux系统安全性。未来在添加第三方源时,务必采用新的GPG直接管理方式。