【避坑指南】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安装

相关推荐
fengyehongWorld12 小时前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者13 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip
一曦的后花园13 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
乌托邦的逃亡者14 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos
拾贰_C14 小时前
【OpenClaw | openai | QQ】 配置QQ qot机器人
运维·人工智能·ubuntu·面试·prompt
念恒1230614 小时前
进程控制---自定义Shell
linux·c语言
风曦Kisaki15 小时前
# Linux Shell 编程入门 Day02:条件测试、if 判断、循环与随机数
linux·运维·chrome
木雷坞15 小时前
视觉算法环境 Docker 镜像拉取失败排查
运维·人工智能·docker·容器
郝亚军15 小时前
ubuntu 22.04如何安装libmodbus
运维·服务器·ubuntu
李日灐15 小时前
< 6 > Linux 自动化构建工具:makefile 详解 + 进度条实战小项目
linux·运维·服务器·后端·自动化·进度条·makefile