NO_PUBKEY错误表明系统缺少对应软件源的GPG公钥,需先提取16位密钥ID(如9C949F2093F565FF),再用sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys [ID]导入;验证执行apt-key list | grep -A1 [ID]和sudo apt update,新版麒麟V10 SP2+需改用signed-by机制存入/usr/share/keyrings/并修改源配置。

麒麟OS执行apt update时提示“NO_PUBKEY”错误,说明系统缺少对应软件源的GPG公钥,无法验证仓库签名,更新流程被中断,此时软件包列表无法刷新,后续安装或升级操作全部失败。
确认缺失的公钥ID
打开终端,执行:
sudo apt update 2>&1 | grep NO_PUBKEY
从输出中精准提取16位密钥ID(如9C949F2093F565FF或56583E647FFA7DE7)。这一步不能靠截图拼凑或手动抄写——输错任意一位都会导致导入失败,且无明确报错提示。
若出现多行NO_PUBKEY,把所有ID都记下来,后续需批量处理。
导入公钥(兼容麒麟V10 SP1及之前版本)
方法一:标准密钥服务器导入
执行命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 【9C949F2093F565FF】
该命令依赖keyserver.ubuntu.com在线服务。若企业网络限制或DNS污染,可能卡在“gpg: requesting key …”长达30秒后超时。
方法二:国内更稳的备用方式
改用HTTP端口穿透防火墙:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 【9C949F2093F565FF】
注意:apt-key虽已被Debian官方标记为废弃,但麒麟V10 SP1及更早版本的APT机制仍强制依赖它;若强行改用gpg --dearmor等新方式,密钥将存入错误路径,无法被apt识别。
验证并刷新源列表
第一步:检查密钥是否真实写入本地钥匙环
运行:
apt-key list | grep -A1 "9C949F2093F565FF"
若返回类似pub rsa4096 2021-03-15 [SC] [expires: 2027-03-15]的行,说明导入成功;若无任何输出,则密钥未生效。
第二步:立即刷新软件包索引
执行:
sudo apt update
此时若不再出现对应NO_PUBKEY错误,且末尾显示获取:1 https://archive.ubuntukylin.com/ubuntukylin focal InRelease [17.5 kB],即表示该源已通过签名验证。
第三步:测试安装(可选但推荐)
运行:
sudo apt install -y curl
这步能暴露“密钥存在但未关联到源”的隐性故障——如果安装失败并报NO_PUBKEY或EXPKEYSIG,说明源配置文件中缺少signed-by=声明,需进入下一阶段修复。
适配新版签名机制(Debian 12+/麒麟V10 SP2+)
若系统为麒麟V10 SP2或更高版本,且上一步验证失败,请改用安全路径:
① 下载并转换密钥为armored格式:
wget -O /tmp/ukylin-key.gpg https://archive.ubuntukylin.com/ubuntukylin/pool/main/u/ubuntukylin-archive-keyring/ubuntukylin-archive-keyring_2023.04.01_all.deb && dpkg-deb -x /tmp/ukylin-key.gpg /tmp/ && sudo gpg --dearmor -o /usr/share/keyrings/ubuntukylin-archive-keyring.gpg /tmp/usr/share/keyrings/ubuntukylin-archive-keyring.gpg
② 编辑源配置文件:
sudo nano /etc/apt/sources.list.d/ubuntukylin.list
将原行:deb https://archive.ubuntukylin.com/ubuntukylin focal main
改为:deb [arch=amd64 signed-by=/usr/share/keyrings/ubuntukylin-archive-keyring.gpg] https://archive.ubuntukylin.com/ubuntukylin focal main
③ 执行:
sudo apt update

















