银河麒麟系统升级提示“验证失败”需先同步系统时间,再重装kylin-signature-keyring密钥环并清理apt缓存;时间偏差超5分钟会导致签名校验失败,密钥缺失引发no_pubkey或badsig错误,锁文件残留亦会阻断升级流程。

银河麒麟系统执行软件升级时提示“验证失败”,通常指APT签名验证机制拦截了未通过可信签名校验的软件包,常见于手动下载.deb安装、混用第三方源或系统时间偏差超过±5分钟。该错误会直接中断apt upgrade流程,无法跳过或强制忽略。
检查并修复系统时间同步
签名验证依赖UTC时间戳比对,若系统时间与标准时间偏差超过5分钟,release文件会被判定为“尚未生效”或“已过期”。
执行 timedatectl status 查看当前时间状态,重点关注 system clock synchronized 是否为 yes。
若显示 no,立即启用NTP服务:sudo timedatectl set-ntp true。等待30秒后再次运行 timedatectl status 确认同步成功——这一步不做,后续所有签名修复都无效。
注意:虚拟机用户需额外检查宿主机时间是否准确,否则即使启用了NTP也可能持续失步。
验证并重装麒麟签名密钥环
银河麒麟V10使用独立密钥环 /usr/share/keyrings/kylin-signature-keyring.gpg 验证官方源包,密钥缺失或损坏会导致“NO_PUBKEY”或“BADSIG”错误。
第一步:确认密钥文件是否存在:ls /usr/share/keyrings/kylin-*.gpg。若无输出,说明密钥环丢失。
第二步:重新安装签名密钥包:sudo apt update && sudo apt install --reinstall kylin-signature-keyring。
第三步:强制刷新APT信任库:sudo apt clean && sudo apt update。此时应看到大量 Hit 和 Get 行,不再出现gpg错误。
【关键前提】 此操作必须在时间已同步的前提下进行,否则新密钥导入后仍会因时间校验失败而被拒绝使用。
清理残留锁文件与损坏状态
方法一:解除dpkg锁死状态
执行 sudo rm -f /var/lib/dpkg/lock* → sudo dpkg --configure -a → sudo apt --fix-broken install。
方法二:清除APT元数据缓存sudo rm -rf /var/lib/apt/lists/*,再运行 sudo apt clean && sudo apt update。
方法三:重启软件商店服务(适用于图形界面升级失败)sudo systemctl restart kylin-software-center.service。
这一步操作起来很简单,直接把命令复制粘贴进终端回车就行。但要注意:若前两步未完成,清理缓存只是白费力气。











