Fedora38下DNF升级GitLab-ee至16.0.1时GPG校验失败求助
在Fedora 38上升级GitLab-ee 15.11.2到16.0.1失败(GPG签名验证错误)
我在Fedora 38系统上用DNF工具升级GitLab-ee,从15.11.2版本升到16.0.1版本时失败,报错信息如下:
错误:使用证书DBEF89774DDB9EB37D9FC3A03CFCF9BAF27EAB47(GitLab, Inc. <support@gitlab.com>)验证签名时: 1. 证书3CFCF9BAF27EAB47无效:证书已失效 原因:主密钥已失效 原因:过期时间为2021-07-01T19:59:40Z 2. 密钥3CFCF9BAF27EAB47无效:密钥已失效 原因:主密钥已失效 原因:过期时间为2021-07-01T19:59:40Z 错误:使用证书DBEF89774DDB9EB37D9FC3A03CFCF9BAF27EAB47(GitLab, Inc. <support@gitlab.com>)验证签名时: 1. 证书3CFCF9BAF27EAB47无效:证书已失效 原因:主密钥已失效 原因:过期时间为2021-07-01T19:59:40Z 2. 密钥3CFCF9BAF27EAB47无效:密钥已失效 原因:主密钥已失效 原因:过期时间为2021-07-01T19:59:40Z gitlab_gitlab-ee 1.9 kB/s | 3.1 kB 00:01 已安装GPG密钥:https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey(0x51312F3F) gitlab_gitlab-ee 3.9 kB/s | 3.8 kB 00:00 已安装GPG密钥:https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg(0xF27EAB47) 为"gitlab_gitlab-ee"仓库配置的GPG密钥已安装,但对当前包无效。 请检查仓库是否配置了正确的密钥URL。失败的包为:gitlab-ee-16.0.1-ee.0.el8.x86_64 配置的GPG密钥为:https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey, https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg 下载的包已保存到缓存,直到下一次成功交易。 可执行`dnf clean packages`移除缓存包。 错误:GPG检查失败
我试过多种方法都没解决,求帮忙。
解决方法
1. 删除过期的GPG密钥
先列出系统里已安装的GitLab相关密钥,找到过期的0xF27EAB47密钥并删除:
rpm -qa gpg-pubkey* | grep -i gitlab rpm -e gpg-pubkey-f27eab47-*
2. 重新导入GitLab官方最新密钥
执行以下命令导入正确的密钥文件:
curl https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg | gpg --dearmor > /etc/pki/rpm-gpg/RPM-GPG-KEY-gitlab-ee
3. 清理缓存后重新升级
先清空DNF的所有缓存:
dnf clean all
然后重新执行升级命令:
dnf upgrade gitlab-ee
4. 检查仓库配置(可选)
如果还是不行,打开GitLab的仓库配置文件/etc/yum.repos.d/gitlab_gitlab-ee.repo,确认gpgkey字段的URL和以下内容一致:
[gitlab_gitlab-ee] name=gitlab_gitlab-ee baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/fedora/$releasever/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
内容的提问来源于stack exchange,提问作者Gavin
相关产品推荐
相关产品推荐

