- 文档首页
云服务器
云服务器ECS
故障处理
操作系统问题
Linux操作系统问题
如何解决软件源密钥失效问题?
Linux操作系统问题
如何解决软件源密钥失效问题?
如何解决软件源密钥失效问题?
在Linux操作系统中,通过包管理器(例如apt、yum及dnf)安装或更新软件包时,出现如下签名验证失败的错误提示。
The following signatures were invalid: KEYEXPIRED <fingerprint>
- CentOS/Rocky Linux/AlmaLinux
NOKEY: Public key for package is not installed
软件源密钥(Software Repository Key)是用于验证软件包来源合法性的GPG公钥。在Linux系统中,软件包管理器(例如apt、yum及dnf)在安装或更新软件包时,会使用软件源密钥对软件包的数字签名进行校验,以确认软件包由可信的发布方签发、且在传输过程中未被篡改。若软件源密钥缺失、过期或不匹配,软件包管理器将拒绝执行安装或更新操作,并返回签名验证失败的错误。
本节提供软件源密钥失效问题的常见修复方案。您可先在受影响的实例内更新软件源密钥;若该实例由自定义镜像创建,还可按需修复镜像本身存在的密钥问题,避免后续基于该镜像创建的新实例出现相同问题。
注意
本节仅展示修复操作必要参数,未说明参数均保持默认。完整参数说明请查看创建作业。 - 单击“确定”按钮,任务创建成功后将自动跳转至作业管理页面并开始执行。
- 待作业状态更新为 执行成功 时,单击右侧“操作”列的“执行结果”按钮。
-
- 依次单击目标实例右侧“操作”列的“运行日志”按钮。当日志中包含keyring installed successfully时,表示已成功更新该实例软件源密钥。
-
- 请根据实例操作系统类型执行对应命令,更新密钥信息。
veLinux
Ubuntu
Debian
CentOS/Rocky Linux/AlmaLinux
wget https://mirrors.ivolces.com/velinux/pool/main/v/velinux-archive-keyring/velinux-archive-keyring_2.0.0%2Bbase2_all.deb
dpkg -i velinux-archive-keyring_2.0.0+base2_all.deb
wget https://mirrors.ivolces.com/velinux/pool/main/v/velinux-archive-keyring/velinux-archive-keyring_1.2%2Bvelinux1_all.deb
dpkg -i velinux-archive-keyring_1.2+velinux1_all.deb
- 执行如下命令,确保密钥更新成功并刷新apt软件源信息。
- 若返回结果未出现The following signatures were invalid: EXPKEYSIG相关错误信息,表示软件源密钥更新成功。
-
注意
请将<fingerprint>替换为您执行apt-get update命令时报错信息中的实际值。例如报错信息为The following signatures were invalid: EXPKEYSIG 3B4FE6ACC0B21F32时,请替换为3B4FE6ACC0B21F32。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <fingerprint>
- 执行如下命令,确保密钥更新成功并刷新apt软件源信息。
- 若返回结果未出现The following signatures were invalid: EXPKEYSIG相关错误信息,表示软件源密钥更新成功。
-
- 根据目标实例操作系统发行版本号(例如:12)或代号(例如:bookworm)查找并获取对应的Archive Signing Key与Security Archive Signing Key下载地址。
-
注意
本步骤命令以Debian 12/bookworm操作系统为例,请将https://ftp-master.debian.org/keys/archive-key-12.asc与https://ftp-master.debian.org/keys/archive-key-12-security.asc替换为您实际获取的密钥下载地址。
cd /etc/apt/trusted.gpg.d/
sudo wget https://ftp-master.debian.org/keys/archive-key-12.asc
sudo wget https://ftp-master.debian.org/keys/archive-key-12-security.asc
- 执行如下命令,确保密钥更新成功并刷新apt软件源信息。
- 若返回结果未出现The following signatures were invalid: EXPKEYSIG相关错误信息,表示软件源密钥更新成功。
-
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-*
- CentOS Stream 10.x/Rocky Linux 10.x/AlmaLinux 10.x
rpm --import https://mirrors.ivolces.com/epel/RPM-GPG-KEY-EPEL-10
- CentOS Stream 9.x/Rocky Linux 9.x/AlmaLinux 9.x
rpm --import https://mirrors.ivolces.com/epel/RPM-GPG-KEY-EPEL-9
- CentOS 8.x/Rocky Linux 8.x/AlmaLinux 8.x
rpm --import https://mirrors.ivolces.com/epel/RPM-GPG-KEY-EPEL-8
rpm --import https://mirrors.ivolces.com/epel/RPM-GPG-KEY-EPEL-7
yum install --assumeno curl
- 若回显无NOKEY: Public key for package is not installed错误信息,表示已成功更新软件源密钥。
-
- 若回显提示Import of key(s) didn't help, wrong key(s)?,表示您导入的密钥与目标数据/签名不匹配,您需要自行从对应的官方软件源仓库导入GPG密钥。例如导入AlmaLinux官方仓库密钥:
rpm --import https://mirrors.ivolces.com/almalinux/RPM-GPG-KEY-AlmaLinux
若您受影响的云服务器实例通过自定义镜像创建,在实例内更新软件源密钥,只会修复当前实例,不会自动同步到该自定义镜像。若您还需要继续使用该自定义镜像创建新实例,可参考本节指引先创建一台临时实例完成修复,再重新制作自定义镜像。
-
- 更新成功后,请单击目标实例右侧“操作”列的“... > 云盘和镜像 > 创建自定义镜像”。
-
- 待新自定义镜像“状态”为 可用 时,表示您已成功创建自定义镜像。
- 完成新镜像创建后,您可按需清理用于修复镜像的临时实例,以及依旧存在软件源密钥问题的自定义镜像等资源,避免产生额外费用或资源占用。
最近更新时间:2026.06.25 19:04:42