普通网友 2025-05-26 07:50 采纳率: 98.7%
浏览 414
已采纳

清华大学Ubuntu源更新时提示GPG密钥错误如何解决?

在使用清华大学Ubuntu镜像源更新时,若出现GPG密钥错误,通常是因为系统缺少或未正确导入相关的签名密钥。解决方法如下:首先,打开终端,运行`sudo apt update`确认错误信息中的密钥ID(一般为一串16位字符)。然后,通过命令`sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [密钥ID]`手动添加缺失的GPG密钥(将[密钥ID]替换为实际值)。完成密钥导入后,再次运行`sudo apt update`验证问题是否解决。若问题依旧存在,可尝试更换默认密钥服务器为清华大学的密钥服务器,使用`hkp://pgp.mit.edu:80`或`hkp://keyserver.ubuntu.com:80`作为替代。此外,确保系统时间准确也很关键,因为时间错误可能导致密钥验证失败。
  • 写回答

1条回答 默认 最新

  • 冯宣 2025-05-26 07:51
    关注

    1. 问题概述

    在使用清华大学Ubuntu镜像源更新时,如果遇到GPG密钥错误,通常是因为系统缺少或未正确导入相关的签名密钥。这种问题不仅会影响软件包的正常更新,还可能引发安全风险。以下是针对此问题的逐步分析与解决方案。

    关键词:GPG密钥、APT更新、签名验证、密钥服务器、时间同步

    1.1 常见错误信息

    当运行命令`sudo apt update`时,可能会看到类似以下的错误提示:

    W: GPG error: https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY [密钥ID]

    这里的[密钥ID]是一串16位字符,例如`ABCD1234EFGH5678`。

    2. 分析过程

    为了解决上述问题,我们需要从以下几个方面进行分析和排查:

    1. 确认错误信息中的密钥ID是否正确。
    2. 检查系统是否已导入相关GPG密钥。
    3. 尝试更换密钥服务器以解决网络连接问题。
    4. 确保系统时间准确无误。

    2.1 密钥ID确认

    通过错误信息中的提示,找到具体的密钥ID。这是解决问题的关键一步。例如,若错误提示为`NO_PUBKEY ABCD1234EFGH5678`,则需要记录该密钥ID。

    2.2 系统时间检查

    GPG密钥验证依赖于系统时间。如果系统时间不准确,可能会导致验证失败。可以使用以下命令检查和同步时间:

    sudo timedatectl status
    sudo ntpdate ntp.ubuntu.com

    3. 解决方案

    根据问题分析,以下是详细的解决方案步骤:

    3.1 手动添加缺失的GPG密钥

    运行以下命令手动导入缺失的GPG密钥:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [密钥ID]

    将[密钥ID]替换为实际值。例如,如果密钥ID为`ABCD1234EFGH5678`,则命令为:

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

    3.2 更换密钥服务器

    如果默认密钥服务器不可用,可以尝试更换为其他服务器。例如:

    密钥服务器URL
    MIT PGP Key Server`hkp://pgp.mit.edu:80`
    Ubuntu Key Server`hkp://keyserver.ubuntu.com:80`

    命令示例:

    sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys [密钥ID]

    3.3 验证更新结果

    完成密钥导入后,再次运行以下命令验证问题是否解决:

    sudo apt update

    4. 流程图

    以下是解决GPG密钥错误的流程图:

    graph TD;
        A[出现GPG密钥错误] --> B[确认密钥ID];
        B --> C[检查系统时间];
        C --> D[手动添加GPG密钥];
        D --> E[更换密钥服务器];
        E --> F[验证更新结果];
        
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 5月26日