添加密钥成功后出现NO_PUBKEY错误

use*_*171 3 apt

当我运行时sudo apt-get update出现以下错误:

Err:8 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B53DC80D13EDEF05
Run Code Online (Sandbox Code Playgroud)

无论我如何尝试,都无法消除此错误。

我尝试解决该问题的方法:

1. 手动添加key

我在谷歌上搜索了如何解决该错误,似乎每个人都建议通过以下方式添加丢失的公钥apt-key

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv B53DC80D13EDEF05
Executing: /tmp/apt-key-gpghome.MRlBtkNXHX/gpg.1.sh --keyserver keyserver.ubuntu.com --recv B53DC80D13EDEF05
gpg: key B53DC80D13EDEF05: 1 duplicate signature removed
gpg: key B53DC80D13EDEF05: "Rapture Automatic Signing Key (cloud-rapture-signing-key-2022-03-07-08_01_01.pub)" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
Run Code Online (Sandbox Code Playgroud)

执行上述命令后,NO_PUBKEY错误依然存在。

2. 删除存储库

/etc/apt/sources.list我查看了和中的存储库列表,/etc/apt/sources.list.d发现/etc/apt/sources.list.d/google-cloud-sdk.list

deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
Run Code Online (Sandbox Code Playgroud)

我已经通过删除了该文件sudo rm -rf /etc/apt/sources.list.d/google-cloud-sdk.list,但仍然遇到相同的错误。

小智 7

就我而言,直到我在下载更新的密钥时简单地使用 --dearmor 来制作 gpg 二进制文件而不是 ASCII 时,才起作用。

curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg| gpg -o /usr/share/keyrings/kubernetes-archive-keyring.gpg --dearmor
Run Code Online (Sandbox Code Playgroud)

之后 apt-get update 就可以正常工作了,没有错误