在Linux系统中,我们经常使用apt-get命令来安装、更新和删除软件包,有时在使用apt-get update命令时,可能会出现“NO_PUBKEY”错误,这个错误通常表示系统无法找到正确的公钥,因此无法验证软件源的完整性和安全性,为了解决这个问题,我们需要添加缺失的公钥到系统的可信密钥列表中,以下是详细的解决方法:
1、查找错误的公钥
我们需要找到导致错误的公钥,在执行apt-get update命令时,系统会显示一个错误消息,其中包含有关错误的详细信息。
W: GPG error: http://archive.ubuntu.com/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG 5042E6F437D05B5A Ubuntu Archive Automatic Signing Key (2019) <ftpmaster@ubuntu.com>
E: The repository 'http://archive.ubuntu.com/ubuntu focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
在这个例子中,我们可以看到错误的公钥是“EXPKEYSIG 5042E6F437D05B5A”。
2、添加缺失的公钥
接下来,我们需要将找到的公钥添加到系统的可信密钥列表中,这可以通过以下步骤完成:
a. 打开终端,输入以下命令以获取缺失的公钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5042E6F437D05B5A
b. 如果上述命令无法获取公钥,可以尝试使用其他密钥服务器,可以使用Google的密钥服务器:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5042E6F437D05B5A
c. 添加公钥后,再次运行apt-get update命令,系统应该能够找到正确的公钥并验证软件源的完整性和安全性。
3、检查是否成功添加公钥
要检查是否成功添加了公钥,可以运行以下命令:
sudo apt-key list | grep "5042E6F437D05B5A"
如果输出中包含“/etc/apt/trusted.gpg.d/”和“5042E6F437D05B5A”,则表示已成功添加公钥。
4、重新配置软件源
如果问题仍然存在,可能是由于软件源的配置问题,可以尝试重新配置软件源,然后再次运行apt-get update命令,在Ubuntu系统中,可以通过编辑/etc/apt/sources.list
文件来完成此操作,要将软件源更改为官方源,可以运行以下命令:
sudo nano /etc/apt/sources.list
将文件中的内容替换为以下内容:
deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
保存并关闭文件后,再次运行apt-get update命令,系统应该能够找到正确的公钥并验证软件源的完整性和安全性。
通过以上步骤,我们可以解决在使用apt-get update命令时遇到的“NO_PUBKEY”错误,查找错误的公钥;添加缺失的公钥;接着,检查是否成功添加公钥;如果问题仍然存在,尝试重新配置软件源。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/175171.html