Linux源公钥怎样安装?
- Linux
- 2025-07-04
- 10
在Linux系统中,源公钥(Repository GPG Key)用于验证软件包的完整性和来源真实性,防止恶意改动,安装公钥是安全使用第三方软件源的关键步骤,以下是详细操作指南:
公钥安装前的准备
-
获取公钥文件
- 从软件源官网下载公钥(通常扩展名为 .asc 或 .gpg), wget -O- https://example.com/repo/key.gpg > key.asc
- 或直接复制公钥字符串(以 -----BEGIN PGP PUBLIC KEY BLOCK----- 开头)。
-
确认系统权限
需拥有 sudo 权限执行关键命令。
推荐安装方法(适用于现代系统)
方法1:将公钥复制到 /etc/apt/trusted.gpg.d/(Debian/Ubuntu)
# 下载公钥并复制到目标目录 sudo wget -O /etc/apt/trusted.gpg.d/<密钥名>.gpg https://example.com/repo/key.gpg # 示例:安装Docker公钥 sudo wget -O /etc/apt/trusted.gpg.d/docker.gpg https://download.docker.com/linux/ubuntu/gpg
方法2:使用 gpg 手动导入(通用)
# 下载公钥 curl -fsSL https://example.com/repo/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/<自定义名>.gpg # 示例:安装Kubernetes公钥 curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes.gpg
传统方法(不推荐,仅兼容旧系统)
使用已弃用的 apt-key(Debian/Ubuntu ≤ 20.04)
# 直接添加公钥 sudo apt-key add key.asc # 或通过URL添加 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <公钥ID>
️ 警告:apt-key 会将公钥添加到全局信任列表,存在安全风险,Ubuntu 22.04+ 已移除该命令。
验证公钥是否安装成功
-
检查目录内容
-
列出已安装公钥
gpg --list-keys --keyring /usr/share/keyrings/<文件名>.gpg -
更新软件源测试
sudo apt update # 无报错即表示公钥生效 -
错误 NO_PUBKEY
运行 sudo apt update 后若提示:
解决:
sudo gpg --keyserver keyserver.ubuntu.com --recv-keys ABCDEF1234567890 sudo gpg --export --armor ABCDEF1234567890 | sudo apt-key add -
-
错误 KEYEXPIRED
公钥已过期,需从官网重新下载最新密钥。
安全建议
- 仅信任官方来源
从软件官网或开发者指定渠道获取公钥,避免中间人攻破。
- 优先使用 /usr/share/keyrings
此目录权限更严格,比全局 /etc/apt/trusted.gpg.d 更安全。
- 定期更新公钥
部分项目会定期轮换密钥,关注官方公告。
正确安装源公钥是保障Linux系统安全的核心步骤,推荐使用 gpg --dearmor 导入到 /usr/share/keyrings/ 的现代方法,避免使用已弃用的 apt-key,操作前务必验证公钥来源,以维护系统的完整性和可信度。
引用说明:
- 本文方法参考 Debian Wiki 和 Ubuntu 安全公告 的最佳实践。
- GPG 密钥管理依据 GnuPG 官方文档。
- 安全建议符合 Linux 基金会安全指南。
- 仅信任官方来源
常见问题解决