Kali更新时出现签名无效、Hash和校验不符的问题

起因

今天在整我虚拟机上的Kali系统,安装东西的时候出现:

1
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?

问题1

然后,使用sudo apt-get update && sudo apt-get upgrade更新的时候,出现:

1
2
3
4
5
错误:4 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease
下列签名无效: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>
已下载 30.5 kB,耗时 1秒 (24.5 kB/s)
正在读取软件包列表... 完成
W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:http://mirrors.ustc.edu.cn/kali kali-rolling InRelease: 下列签名无效: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>

然后,使用apt-key list查看,发现有个keyring.gpg过期了:

1
2
3
4
5
/etc/apt/trusted.gpg.d/kali-archive-keyring.gpg
-----------------------------------------------
pub rsa4096 2012-03-05 [SC] [expired: 2018-02-02]
44C6 513A 8E4F B3D3 0875 F758 ED44 4FF0 7D8D 0BF6
uid [ expired] Kali Linux Repository <devel@kali.org>

解决方法
首先使用以下命令:

1
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.1_all.deb

然后运行:

1
apt install ./kali-archive-keyring_2018.1_all.deb

这个问题就解决了

问题2

但是这个时候再使用sudo apt-get update && sudo apt-get upgrade,又出现了另一个错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
E: 无法下载 http://172.17.0.111/cache/7/02/mirrors.ustc.edu.cn/01fbf595fbfd06d37257ada0be178b0b/Sources.gz  Hash 校验和不符
Hashes of expected file:
- Filesize:11822681 [weak]
- SHA256:32a1f422348290dbe259aa9c57ea3c8e9622b4f6e808dcc7694163d3d8622c26
- SHA1:872723d9ba3977a72101d847ce341c503e681cef [weak]
- MD5Sum:c4c623d3ec6792e477ef37c62561021a [weak]
Hashes of received file:
- SHA256:2ee0958d97d7df9fe0b406f0b18d225125939f0d3699cc3f9b2dd3c948cea941
- SHA1:fe4abbd5e75606c6ce6df3d87968f32bd16c9027 [weak]
- MD5Sum:5c7119257cd72146aa5f4d70daf41e4b [weak]
- Filesize:11702644 [weak]
Last modification reported: Fri, 26 Jan 2018 00:03:11 +0000
Release file created at: Sat, 03 Mar 2018 00:03:33 +0000
E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

解决方法
这是因为我之前的更新没有顺利结束,有临时文件残留,所以先执行:

1
sudo apt-get clean

再执行:

1
sudo rm -rf /var/lib/apt/lists/*

就可以了。

另外,这个问题也有可能是网络问题导致的。