执行apt-get update时出现无效签名错误:原因及解决方法
Hey,我经常在Stack Overflow上帮人解决Kali的这类问题,碰到apt-get update报无效签名错误,大概率是这几个原因,对应解决办法也很直接:
可能的触发原因
- 密钥过期或未更新:Kali官方会定期轮换软件源的签名密钥,如果你的系统里存储的还是旧密钥,验证新的源文件时就会失败。
- 软件源配置有问题:比如你加了第三方非官方源、或者源地址失效/写错了,这些源的签名密钥不在系统的信任列表里,自然过不了验证。
- 系统时间偏差太大:签名验证对时间很敏感,如果系统时间早于密钥生效时间,或者晚于密钥过期时间,都会被判定为无效签名。
- 缓存的源文件损坏:之前下载的源索引文件(比如
InRelease、Release.gpg)损坏,导致签名校验不通过。
对应的解决步骤
1. 更新Kali官方签名密钥
这是最常用的修复方式,直接导入最新的官方密钥:
wget -q -O - https://archive.kali.org/archive-key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/kali-archive-keyring.gpg > /dev/null
如果上面的命令执行有问题,也可以通过密钥服务器获取官方密钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED444FF07D8D0BF6
2. 修复软件源配置
先备份当前的源文件,避免改错后无法恢复:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
然后编辑源配置文件,替换成官方或国内靠谱的镜像源(比如阿里云镜像,速度更快):
sudo nano /etc/apt/sources.list
把文件内容替换为:
deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
保存退出(按Ctrl+O确认保存,回车,再按Ctrl+X退出nano),之后重新执行sudo apt-get update试试。
3. 同步系统时间
如果是时间问题导致的,先安装并同步网络时间:
sudo apt install ntpdate -y sudo ntpdate pool.ntp.org
为了避免下次开机时间又乱,开启时间同步服务自启:
sudo systemctl enable ntpdate
4. 清理缓存并重新下载源文件
如果是缓存的源文件损坏,先清理缓存再重新获取:
sudo apt clean sudo apt update --fix-missing
内容的提问来源于stack exchange,提问作者Niraj Chemjong
相关产品推荐
相关产品推荐

