Kali Linux 存储库的无效签名:“以下签名无效:EXPKEYSIG ED444FF07D8D0BF6 Kali Linux 存储库”

Abe*_*zer 29 apt package-management kali-linux

我无法更新我的 Kali Linux,尝试执行时apt-get update我收到此错误消息:

# apt-get update

Get:1 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease [30.5 kB]
Err:1 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease
  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>
Reading package lists... Done
W: GPG error: http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease: The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>
E: The repository 'http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Run Code Online (Sandbox Code Playgroud)

如果您需要我的内核版本:

# uname -a
4.13.0-kali1-amd64 #1 SMP Debian 4.13.10-1kali2 (2017-11-08) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

GAD*_*D3R 38

添加 gpg 密钥:

gpg --keyserver hkp://keys.gnupg.net --recv-key 7D8D0BF6
Run Code Online (Sandbox Code Playgroud)

检查指纹:

gpg --fingerprint 7D8D0BF6
Run Code Online (Sandbox Code Playgroud)

示例输出:

pub   rsa4096 2012-03-05 [SC] [expires: 2021-02-03]
      44C6 513A 8E4F B3D3 0875  F758 ED44 4FF0 7D8D 0BF6
uid           [ unknown] Kali Linux Repository <devel@kali.org>
sub   rsa4096 2012-03-05 [E] [expires: 2021-02-03]
Run Code Online (Sandbox Code Playgroud)

然后 :

gpg -a --export 7D8D0BF6 | apt-key add -
apt update
Run Code Online (Sandbox Code Playgroud)

Debian : SecureApt

更新:2018 年 2 月 8 日。

官方文档中的回答

请注意,如果您有一段时间没有更新 Kali 安装(tsk2),您会收到关于存储库密钥已过期的 GPG 错误(ED444FF07D8D0BF6)。幸运的是,通过以 root 身份运行以下命令可以快速解决此问题:

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add
Run Code Online (Sandbox Code Playgroud)

  • 在某些情况下(比如当你在 android 上安装发行版时,例如:`rootfs`...),你找不到 `wget`,甚至无法安装它(`apt install wget` 不起作用) 。 (3认同)

小智 21

使用以下命令下载 kali 软件包存储库的密钥:

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add
Run Code Online (Sandbox Code Playgroud)

然后运行更新。


Ada*_*atz 11

这是内置的。如果您已经使用 Kali 的 repos,则不需要从外部来源获取它:

$ sudo apt install kali-archive-keyring
Run Code Online (Sandbox Code Playgroud)

我正在使用一个将 Kali 添加到 Debian 基础的系统,所以我必须指定版本。您可以按如下方式检查:

$ apt policy kali-archive-keyring
  Installed: 2015.2
  Candidate: 2015.2
  Version table:
     2018.1 1
          1 http://http.kali.org/kali kali-rolling/main amd64 Packages
          1 http://http.kali.org/kali kali-rolling/main i386 Packages
 *** 2015.2 100
        100 /var/lib/dpkg/status

$ sudo apt install kali-archive-keyring/kali-rolling
Run Code Online (Sandbox Code Playgroud)

这样,您不必盲目相信您正在导入正确的密钥以防止中间人攻击,因为新密钥是由存储库中的旧密钥签名的。


如果您还没有此存储库,因此无法获得此更新,您有两种选择:

1:进入https://http.kali.org/kali/pool/main/k/kali-archive-keyring/,下载.deb文件,通过安装dpkg -i kali-archive-keyring*.deb

2:无论如何都要通过存储库添加它(在添加之前它是“不安全的”):

$ sudo apt install kali-archive-keyring
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一适用于 Windows WSL2 Kali Linux 的答案,因为它默认没有安装 gpg,并且无法执行 apt-key add 命令。 (4认同)

小智 7

正如Kali Linux 在 Twitter 上发布的那样,你的archive-keyring包已经过时了。您需要通过执行此操作来更新它(以 root 身份):

wget -q -O - https://archive.kali.org/archive-key.asc  | apt-key add
Run Code Online (Sandbox Code Playgroud)