Kali Linux 系统在执行 sudo apt-get update 时出现了 GPG 公钥缺失错误

起因是早上在配置kail的代理查看kali的7891端口是否开放的时候需要安装ufw,但是报错404 Not Found,表明系统无法从 [http://http.kali.org ](http://http.kali.org ) 下载 ufw_0.36.2-8_all.de b 文件

我这里首先更换了源文件

1
2
3
4
5
6
7
8
9
10
# 1:编辑源列表文件
sudo vim /etc/apt/sources.list

# 2:替换为可靠的镜像源(如阿里云)
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

# 3.刷新软件源信息
sudo apt-get update

先进行了执行以下命令刷新软件源信息sudo apt-get update又报错

image-20250902101101365

这里告诉我的GPG 密钥缺失密钥环未同步

  1. GPG 密钥缺失
    系统缺少验证软件仓库签名的公钥 ED65462EC8D5E4C5(Kali Linux 官方仓库的加密签名密钥)。

    • 当镜像站(如 mirror.nyist.edu.cn)同步官方仓库时,其软件包需用此密钥签名验证。
    • 若本地未安装该密钥,APT 会拒绝更新,防止安装被篡改的软件包(安全机制)。
  2. 密钥环未同步
    Kali 使用独立的密钥包 kali-archive-keyring 管理公钥。以下情况会导致缺失:

    • 新安装系统未包含此包
    • 国内镜像站未同步最新密钥文件
    • 密钥已过期(Kali 密钥通常每 1-2 年轮换)

完整解决方案(分三步)

第一步:手动添加缺失的 GPG 密钥(推荐方法)

1
2
3
4
5
# 从 Ubuntu 密钥服务器获取公钥(ED65462EC8D5E4C5)
sudo gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys ED65462EC8D5E4C5

# 将密钥转换为 APT 可识别的格式
sudo gpg --export --armor ED65462EC8D5E4C5 | sudo tee /etc/apt/trusted.gpg.d/kali-key.asc > /dev/null

原理:直接通过 GPG 协议获取密钥,避免依赖问题。
注意:若 gpg 命令无效,先安装 gnupgsudo apt install gnupg

第二步:安装 Kali 官方密钥环(备用方法)

若第一步无效,直接安装密钥管理包:

1
2
3
4
5
# 下载最新密钥环(2025年适用版本)
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2025.1_all.deb

# 安装密钥环
sudo dpkg -i kali-archive-keyring_2025.1_all.deb

说明:此包包含所有官方仓库的签名密钥。若链接失效,访问 Kali 密钥环目录 获取最新版本。

第三步:验证修复并更新

1
2
3
4
5
# 重新更新软件源
sudo apt-get update

# 检查是否仍有错误
sudo apt-get upgrade -y

预期结果:GPG 错误消失,可正常下载软件包列表。

当我再使用sudo apt-get update的时候就可以啦

image-20250902101419730

问题层级 原因描述 解决方案
安全机制 APT 要求验证软件包签名 必须安装对应 GPG 公钥
密钥管理 kali-archive-keyring 包缺失或过期 手动添加密钥或安装密钥环
镜像同步 国内镜像未包含密钥文件 改用阿里云等可靠镜像源
  • 始终从官方渠道获取密钥(如 keyserver.ubuntu.com
  • 勿使用已弃用的 apt-key add 命令(可能被后续系统移除)
  • 定期运行 sudo apt update 可提前发现密钥过期问题