由于 NO_PUBKEY 6AF7F09730B3F0A4,apt-get 更新失败

Iva*_*lov 16 updates apt

我正在使用安装了 Ubuntu 20.04.3 LTS 的 WSL (windows-for-linux)。当我运行时sudo apt-get update出现以下错误:

Err:7 https://apt.kitware.com/ubuntu bionic InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6AF7F09730B3F0A4
Fetched 11.0 kB in 1s (7552 B/s)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下中发布的提示: 由于公钥不可用,无法验证以下签名:NO_PUBKEY 但这对我不起作用 - gpg 抱怨“没有数据”:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4
Executing: /tmp/apt-key-gpghome.Cz3vHTxU7i/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4
gpg: keyserver receive failed: No data
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能使 apt-get update 工作?

更新:

根据要求我分享/etc/apt/source.list

deb http://archive.ubuntu.com/ubuntu/ focal main restricted
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ focal universe
deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
deb http://archive.ubuntu.com/ubuntu/ focal multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse


deb http://security.ubuntu.com/ubuntu/ focal-security main restricted
deb http://security.ubuntu.com/ubuntu/ focal-security universe
deb http://security.ubuntu.com/ubuntu/ focal-security multiverse
deb https://apt.kitware.com/ubuntu/ bionic main
Run Code Online (Sandbox Code Playgroud)

小智 16

我将密钥添加到 Ubuntu 密钥服务器(由于某种原因,他们没有 Kitware apt 存储库的密钥,该存储库于 2022 年更新)

现在运行它应该可以解决您的问题:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4
Run Code Online (Sandbox Code Playgroud)


Gea*_*Lin 6

在你的/etc/apt/sources.list.d/kitware.list它是:

deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main
Run Code Online (Sandbox Code Playgroud)

所以这个存储库被迫使用/usr/share/keyrings/kitware-archive-keyring.gpg这个公钥进行验证。

但是您已使用apt-key全局密钥库(位于/etc/apt/trusted.gpg和中/etc/apt/trusted.gpg.d/)而不是该特定文件更新了您的公钥。

所以有两种方法可以让它发挥作用:

  • 按照https://apt.kitware.com/中“获取我们的签名密钥的副本”部分的确切说明来创建/usr/share/keyrings/kitware-archive-keyring.gpg此文件。
  • 删除[signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg]里面的内容/etc/apt/sources.list.d/kitware.list,以便apt可以从全局密钥库中读取相应的公钥。(您仍然需要从某个地方安装公钥)


Err*_*404 5

只需遵循官方文档即可:

  1. 首先,运行以下命令来安装所有必备组件:

    sudo apt-get update
    sudo apt-get install gpg wget
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在添加 GPG 密钥环:

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更新:

    sudo apt-get update
    
    Run Code Online (Sandbox Code Playgroud)