【避坑指南】Ubuntu更新报错“Repository is not signed”的快速修复

一招解决Docker源GPG密钥验证失败问题,让你的apt恢复如初!

问题现象

在使用Ubuntu系统时,执行sudo apt update后出现如下错误提示:

复制代码
W: GPG error: https://download.docker.com/linux/ubuntu focal Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://download.docker.com/linux/ubuntu focal Release' is not signed.

这是典型的APT源GPG密钥验证失败问题,会导致无法从该源安装或更新软件包。

问题根源

APT包管理器通过GPG密钥来验证软件源的完整性和真实性。当密钥缺失、过期或不匹配时,出于安全考虑,Ubuntu会阻止从该源进行软件更新。

解决方案大全

方案一:完整修复Docker源(推荐)

这是最彻底的解决方案,适用于需要继续使用Docker官方源的用户。

bash 复制代码
# 1. 安装GPG工具
sudo apt install -y gpg

# 2. 创建密钥目录并下载Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 3. 设置正确的文件权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 4. 重新添加Docker仓库(适配当前系统版本)
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 更新软件包列表
sudo apt update

方案二:临时绕过验证(应急使用)

如果急需安装某个软件(如curl),可以暂时绕过验证:

bash 复制代码
# 更新可用的源
sudo apt update

# 强制安装(不推荐长期使用)
sudo apt install curl -y --allow-unauthenticated

方案三:移除有问题的源

如果暂时不需要使用Docker,可以直接移除问题源:

bash 复制代码
# 方法A:直接删除Docker源文件
sudo rm -f /etc/apt/sources.list.d/docker.list

# 方法B:注释掉Docker源
sudo sed -i '/download.docker.com/s/^/# /' /etc/apt/sources.list.d/docker.list

# 更新软件包列表
sudo apt update

方案四:手动添加缺失密钥

针对具体的缺失密钥进行修复:

bash 复制代码
# 添加报错信息中显示的缺失密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8

# 更新验证
sudo apt update

故障排查流程图


否/暂时不用
遇到GPG验证错误
是否需要Docker源?
使用方案一完整修复
使用方案三移除源
修复成功
问题解决
可正常使用Docker
可正常使用其他源

实用小贴士

  1. 定期清理系统

    bash 复制代码
    sudo apt autoremove  # 清理不再需要的依赖包
    sudo apt autoclean   # 清理旧的软件包缓存
  2. 检查源状态

    bash 复制代码
    sudo apt update 2>&1 | grep -i "gpg\|key\|error"  # 过滤查看密钥相关错误
  3. 备份源列表

    bash 复制代码
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    sudo cp -r /etc/apt/sources.list.d/ /etc/apt/sources.list.d.backup/

预防措施

  • 添加第三方源时,确保同时添加其GPG密钥
  • 定期更新系统密钥环:sudo apt install debian-archive-keyring
  • 使用国内镜像源可提高速度并减少密钥问题

结语

GPG密钥验证是Linux系统安全的重要机制,虽然有时会带来一些小麻烦,但它保护我们免受恶意软件源的侵害。掌握这些修复方法,你就能游刃有余地处理类似的APT源验证问题。

希望这篇指南能帮助你顺利解决问题!如果遇到其他技术难题,欢迎在评论区留言讨论。祝你编码愉快!


本文为原创内容,版权归作者所有,转载需注明出处。

标签:#Ubuntu故障排除 #APT源修复 #Docker安装

相关推荐
带土12 小时前
10. .out文件
linux
STCNXPARM3 小时前
Linux camera之V4L2子系统详解
android·linux·camera·v4l2架构
yueyuexiaokeai13 小时前
linux kernel常用函数整理
linux·c语言
cg_ssh3 小时前
Docker 下启动 Nacos 3.1.1 单机模式
运维·docker·容器
修己xj3 小时前
使用 Docker 部署 SQL Server 并导入 .mdb 文件的完整指南
运维·docker·容器
郝亚军5 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu
Konwledging5 小时前
kernel-devel_kernel-headers_libmodules
linux
Web极客码5 小时前
CentOS 7.x如何快速升级到CentOS 7.9
linux·运维·centos
一位赵6 小时前
小练2 选择题
linux·运维·windows