银河麒麟V10默认不允安装任意来源deb包,需启用签名验证机制:先确认APT源已配置GPG密钥且无“NO_PUBKEY”报错,再通过新建99force-signed文件设AllowUnauthenticated为"0",导入kylin-release-keyring.gpg并绑定至sources.list,最后禁用kylin-installer无签检查及dpkg绕过签名通道。

麒麟V10系统默认允许安装任意来源的deb/rpm包,这会带来未签名软件执行恶意代码的风险。要让系统在安装或更新软件时自动拒绝无有效官方签名的包,必须启用并严格配置软件包签名验证机制。
确认系统已启用APT/RPM签名验证基础
打开终端,执行 【sudo apt-get update】(桌面版)或 【sudo yum makecache】(服务器版),观察输出中是否出现“GPG error”或“NO_PUBKEY”提示。若无任何签名相关报错,说明当前源已配置GPG密钥但未强制校验;若大量报错,则签名机制尚未就位,需先导入密钥。
执行 【apt-config dump | grep APT::Get::AllowUnauthenticated】(Ubuntu系)或 【rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'】(RHEL系),确认返回值中 AllowUnauthenticated 为 “0” 或 gpg-pubkey 列表包含 kylin、uniontech 等官方标识。
强制启用APT源签名强制校验(桌面版适用)
方法一:修改APT全局策略
执行 【sudo nano /etc/apt/apt.conf.d/99force-signed】,新建配置文件,写入以下两行:
APT::Get::AllowUnauthenticated "0";
APT::Get::Check-Valid-Until "1";
保存后执行 【sudo apt-get update】,若源未签名或过期,将立即报错终止,不再静默降级处理。
注意:此配置会阻止所有未签名源的更新,包括本地光盘源或内网仓库——【必须确保你使用的每个sources.list条目都已导入对应GPG公钥】。
导入并绑定麒麟官方GPG密钥(通用步骤)
第一步:下载麒麟官方签名密钥
访问麒麟软件官网安全公告页(https://www.kylinos.cn/security/keys),下载 kylin-release-keyring.gpg 文件,或直接执行:
【curl -fsSL https://repo.kylinos.cn/kylin/release/kylin-release-keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kylin-release-keyring.gpg】
第二步:将密钥绑定到对应源
编辑 /etc/apt/sources.list 或 /etc/apt/sources.list.d/kylin.list,将原行:
deb http://repo.kylinos.cn/kylin/ v10 main
改为(x86_64平台):
deb [arch=amd64 signed-by=/usr/share/keyrings/kylin-release-keyring.gpg] http://repo.kylinos.cn/kylin/ v10 main
ARM64平台则将 arch=amd64 替换为 arch=arm64。
第三步:刷新源并验证绑定效果
执行 【sudo apt-get update】,成功时应显示 “Hit” 或 “Get”,且无 “NO_PUBKEY” 提示;若仍报错,说明密钥路径错误或源地址不匹配。
禁用非签名软件临时安装通道
执行 【sudo dpkg --configure -a】 确保无残留半安装包后,移除危险快捷入口:
删除麒麟应用安装器对无签名包的容忍逻辑:【sudo rm -f /usr/bin/kylin-installer --no-sign-check】(若存在)
禁止用户通过 dpkg -i 绕过签名检查:【echo 'DPkg::Options {"--force-confdef";"--force-confold";"--ignore-depends=none";"--no-signature";}'>/tmp/dpkg-no-sign.conf && sudo mv /tmp/dpkg-no-sign.conf /etc/apt/apt.conf.d/98no-dpkg-sign】
该操作会使得后续所有 dpkg -i 命令默认附加 --no-signature 参数失败,除非显式加 --force-without-signature(需root权限且留痕)。











