上一篇
Linux源公钥怎样安装?
- Linux
- 2025-07-04
- 6
获取公钥文件后,使用
apt-key add
(Debian/Ubuntu)或
rpm --import
(CentOS/RHEL)命令导入,确保公钥来源可信且拥有sudo权限。
在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+ 已移除该命令。
验证公钥是否安装成功
-
检查目录内容
ls /etc/apt/trusted.gpg.d/ # 确认文件存在 ls /usr/share/keyrings/ # 检查手动导入的密钥
-
列出已安装公钥
gpg --list-keys --keyring /usr/share/keyrings/<文件名>.gpg
-
更新软件源测试
sudo apt update # 无报错即表示公钥生效
常见问题解决
-
错误
NO_PUBKEY
运行sudo apt update
后若提示:W: GPG error: http://repo.example.com Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABCDEF1234567890
解决:
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 基金会安全指南。