gpg: 无效的密钥资源URL '[…]/home:manuelschneid3r.asc.gpg'

我正在按照官方指南安装Docker。
在第2步添加Docker的官方GPG密钥时,我遇到了以下错误:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
gpg: invalid key resource URL '/tmp/apt-key-gpghome.Rcg4Lpatvi/home:manuelschneid3r.asc.gpg'
gpg: keyblock resource '(null)': General error
gpg: key 1488EB46E192A257: 1 signature not checked due to a missing key
gpg: key 3B4FE6ACC0B21F32: 3 signatures not checked due to missing keys
gpg: key D94AA3F0EFE21092: 3 signatures not checked due to missing keys
gpg: key 871920D1991BC93C: 1 signature not checked due to a missing key
gpg: Total number processed: 9
gpg:       skipped new keys: 9

怎么解决这个问题?

只是为了背景,我遇到了同样的问题,并通过删除那个manuelschneid3r密钥来解决了它。而且这个密钥似乎是在我尝试安装albert启动器时导入的。(https://albertlauncher.github.io/installing/)我猜这里的每个人都应该也在使用albert。真是巧合。 - hzh
作者在这里。请参阅关于此问题的文章 - ManuelSchneid3r
4个回答

这个问题可以通过以下方法解决:
sudo rm "/etc/apt/trusted.gpg.d/home\:manuelschneid3r.gpg"

或者

sudo rm "/etc/apt/trusted.gpg.d/home\:manuelschneid3r.asc"

这可能是由于安装了Albert launcher,这里有一个相关问题。感谢评论中的Sasgorilla。

我在尝试在Ubuntu上安装Podman(https://podman.io/getting-started/installation.html)时遇到了这个问题,但是通过以下方法成功安装了它。 - Kuberchaun
1你是如何发现这个的? - Felipe
这对我也起作用了。它还导致zerotier-cli安装失败,出现NO_PUBKEY 1657198823E52A61错误。非常感谢! - Matus Cimerman
你能对此进行一点解释吗?我没有这样的文件。 - Krishna
5我相信这是由于安装了Albert启动器导致的。我已经在那里打开了一个问题。问题链接 - Sasgorilla
3在我的情况下,命令略有不同:sudo rm "/etc/apt/trusted.gpg.d/home:manuelschneid3r.asc"。请在/etc/apt/trusted.gpg.d/目录中查找有问题的密钥。 - Sasgorilla
对我也起作用了,谢谢。 - Hadisur Rahman
这对我也起作用了。确实是Albert启动器。 - Fgblanch

在安装MongoDB时遇到了这个错误。以下方法对我有效。
sudo rm /etc/apt/trusted.gpg.d/home:manuelschneid3r.gpg

为我工作!非常感谢。 - Sergey Chizhik

请注意,这个答案是本文中的一个副本。
关于过期的密钥,你没有太多办法,只能获取一个新的有效密钥。听起来很简单,但仍然有一些注意事项。
请注意,过去曾经分发过多个密钥:全局密钥和每个分发的密钥。此外,过去推荐的代码片段将密钥放在不同的位置(/etc/apt/trusted.gpg 和 /etc/apt/trusted.gpg.d/[...])。
本教程将尝试解决所有可能的问题,并使apt重新正常工作。
1. 嵌入在/etc/apt/trusted.gpg中的密钥
使用apt-key del 命令删除该密钥。通过apt-key list命令找到repo home:manuelschneid3r的id。
# apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa2048 2017-10-27 [SC] [expired: 2022-03-05]
      A4B8 3CD0 5FDF 5C51 7848  2D4A 1488 BLAA E192 A257
uid           [ expired] home:manuelschneid3r OBS Project <home:manuelschneid3r@build.opensuse.org>

[…]

# apt-key del "A4B8 3CD0 5FDF 5C51 7848  2D4A 1488 BLAA E192 A257"


2. 在/etc/apt/trusted.gpg.d/中的密钥
删除与Albert相关的所有密钥在/etc/apt/trusted.gpg.d/中。请注意,根据您用于安装albert的代码片段,这些密钥可能具有晦涩的名称。如果您在官方软件中心的OBS上使用了该代码片段,则文件很可能具有名称home_manuelschneid3r.gpg
rm /etc/apt/trusted.gpg.d/home_manuelschneid3r.gpg 
3. 资源列表

apt 现在会拒绝工作并显示以下错误信息:

由于公钥不可用,无法验证以下签名:NO_PUBKEY …

如果您想保留 albert,请立即获取新的密钥。这正是您最初安装 albert 时所做的。请访问OBS软件中心以获取代码片段。

如果您不再需要 albert,请通过删除 /etc/apt/sources.list 中的相关行或文件 /etc/apt/sources.list.d/home:manuelschneid3r.list 来从资源列表中移除该存储库,具体取决于您安装 albert 的方式。

完成了!尽情使用 albert 吧。


我遇到了同样的问题。在我的情况下,在相同的目录 /etc/apt/trusted.gpg.d 中,我有一个以不同名称命名的 .asc 文件。一旦我通过更改扩展名来重命名 .asc 文件,我就能够添加 Docker 的 gpg 密钥。

1更准确地说,使用以下命令:curl -fsSL https://download.docker.com/linux/ubuntu/gpg > /etc/apt/trusted.gpg.d/docker.asc - nagylzs