📌  相关文章
📜  ubuntu 以下签名无法验证,因为公钥不可用: NO_PUBKEY - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:20:44.925000             🧑  作者: Mango

问题描述

在 Ubuntu 中使用 apt 命令时,可能会遇到以下错误信息:

W: GPG 错误:http://archive.ubuntu.com/ubuntu focal InRelease: 以下签名无法验证,因为公钥不可用:NO_PUBKEY XYZ

这个错误通常表示系统无法验证软件包的签名,因为缺少相应的公钥。

错误原因

Ubuntu 使用 GNU Privacy Guard (GPG) 来签名软件包,并使用公钥来验证签名的有效性。如果系统缺少软件包的公钥信息,就无法验证软件包的签名。

解决方案

要解决这个问题,可以使用以下方法之一:

1. 导入缺失的公钥

请记住将 XYZ 替换为实际的公钥 ID。

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com XYZ

此命令将从键服务器下载并导入缺失的公钥。

2. 使用 apt-key 添加公钥

如果你已经知道缺失的公钥是哪个,请将 XYZ 替换为实际的公钥 ID,并执行以下命令:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys XYZ
3. 使用 apt-key 导入公钥文件

在某些情况下,你可能会获得一个公钥文件,你可以使用以下命令导入它:

sudo apt-key add <keyfile>

请将 <keyfile> 替换为实际的公钥文件路径。

4. 使用 apt-key 删除无效的公钥

如果你知道哪些公钥无效,可以使用以下命令删除它们:

sudo apt-key del XYZ

请将 XYZ 替换为实际的公钥 ID。

5. 更新软件包列表

完成上述步骤后,运行以下命令以更新软件包列表:

sudo apt update

总结

Ubuntu 上的 "以下签名无法验证,因为公钥不可用" 错误通常是由于缺少软件包的公钥导致的。通过导入缺失的公钥、补充缺少的公钥或删除无效的公钥,并更新软件包列表,通常可以解决这个问题。