GitLab 升级时签名验证失败

GitLab 升级时签名验证失败

Gitlab Upgrade An error occurred during the signature verification
原文链接:https://forum.gitlab.com/t/gitlab-upgrade-an-error-occurred-during-the-signature-verification/66894

1. 问题

在使用 Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-97-generic x86_64) 系统中, 使用 sudo apt update 时, GitLab 相关内容会提示警告
W: https://mirrors.cloud.tencent.com/gitlab-ce/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

或是提示以下警告
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu 7 focal InRelease: The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) packages@gitlab.com
W: Failed to fetch https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/dists/focal/InRelease 3 The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) packages@gitlab.com
W: Some index files failed to download. They have been ignored, or old ones used instead.

2. 解决方法

分别执行以下俩条命令

curl -s https://packages.gitlab.com/gpg.key | apt-key add -  

apt-get update  

注意! 上面这是俩条分开的命令. 或是直接使用下面一行命令代替:

curl -s https://packages.gitlab.com/gpg.key | apt-key add - ; apt-get update

上面的命令会重新下载签名文件, 并添加到apt-key中. 然后执行apt-get update.

若上面的命令执行完成后, 没有其他警告并且成功了.就不需要下面的步骤了.

在最新版本的 Ubuntu 系统中.可能执行完上面的命令后. 会出现下面的警告:

Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

下面是该警告的解决办法.

3. 解决警告

在最新版本的 Ubuntu 系统中.可能执行完上面的命令后. 会出现下面的警告:

Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

3.1 找到警告的相关源的 key

使用 apt-key list 命令列出所有 keyring 的信息, 然后找出该 keyring 的 fingerprint, 具体方法是找关键字.

apt-key list

下面是返回的结果, 不同的机器上结果会有不同.

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2020-03-02 [SC] [expires: 2026-02-27]
      F640 3F65 44A3 8863 DAA0  B6E0 3F01 618A 5131 2F3F
uid           [ unknown] GitLab B.V. (package repository signing key) <packages@gitlab.com>
sub   rsa4096 2020-03-02 [E] [expires: 2026-02-27]

/etc/apt/trusted.gpg.d/git-core-ubuntu-ppa.gpg
----------------------------------------------
pub   rsa1024 2009-01-22 [SC]
      E1DD 2702 88B4 E603 0699  E45F A171 5D88 E1DF 1F24
uid           [ unknown] Launchpad PPA for Ubuntu Git Maintainers

/etc/apt/trusted.gpg.d/gitlab-ce-key.gpg
----------------------------------------
pub   rsa4096 2020-03-02 [SC] [expires: 2026-02-27]
      F640 3F65 44A3 8863 DAA0  B6E0 3F01 618A 5131 2F3F
uid           [ unknown] GitLab B.V. (package repository signing key) <packages@gitlab.com>
sub   rsa4096 2020-03-02 [E] [expires: 2026-02-27]

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
------------------------------------------------------
pub   rsa4096 2018-09-17 [SC]
      F6EC B376 2474 EDA9 D21B  7022 8719 20D1 991B C93C
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>

上面第一个块中就是我们要找的Gitlab相关的key信息(因为写了GitLab B.V.). 其中F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F这行就是这个key的指纹. 在使用这个指纹时, 可以只需要指定最后8位即可(即:51312F3F).

3.2 导出key到指定目录

在导出命令中, 只需要指纹的最后8位, 即上面的51312F3F.
将/etc/apt/trusted.gpg.d/git-core-ubuntu-ppa.gpg 中的 git-core-ubuntu-ppa.gpg, 保存在 /etc/apt/trusted.gpg.d 这个路径下即可,
其中git-core-ubuntu-ppa.gpg这个名字是可以自定义随便取的. 在这里我使用gitlab-ce-key.gpg. 具体命令如下

sudo apt-key export 51312F3F | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/gitlab-ce-key.gpg

执行完上面的命令后, 会在/etc/apt/trusted.gpg.d/路径下多出一个gitlab-ce-key.gpg文件.
可以使用下面的命令查看:

ll /etc/apt/trusted.gpg.d

3.3 修改 gitlab-ce 源中的key的加载路径

执行以下命令, 打开 gitlab-ce.list 文件.

vim /etc/apt/sources.list.d/gitlab-ce.list

现在的文件内容应该是类似下面的内容:

deb https://mirrors.cloud.tencent.com/gitlab-ce/ubuntu jammy main

将内容修改为下面的内容(vim中按i进行编辑):

deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/gitlab-ce-key.gpg] https://mirrors.cloud.tencent.com/gitlab-ce/ubuntu jammy main

即: 在deb后面插入下面的内容, 注意前后有空格.

[arch=amd64 signed-by=/etc/apt/trusted.gpg.d/gitlab-ce-key.gpg]

然后按Esc键退出编辑模式, 再输入:w(冒号和w)回车保存文件, 再输入:q(冒号和q)回车退出vim.

再次使用命令 sudo apt update 和 sudo apt upgrade 时就不会再提示警告了.

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GitLab升级路线可以分为以下几个步骤: 1.备份数据:在升级之前,务必备份GitLab的数据。这包括数据库、存储库以及其他相关文件。备份可以确保在升级过程中出现问题能够恢复数据。 2.查看升级说明:在升级之前,查看GitLab的官方文档或升级指南,了解新版本的变化和升级过程。这些文档通常提供详细的步骤和注意事项。 3.选择合适的版本:根据需求和实际情况,选择合适的GitLab版本进行升级。通常建议选择最新的稳定版本,以获得最新功能和安全修复。 4.准备升级环境:在进行升级之前,确保升级环境符合GitLab的要求。这包括操作系统、依赖库和其他系统配置。如果需要,可以先进行必要的系统更新和配置。 5.停止GitLab服务:在升级之前,停止GitLab服务,以确保没有用户正在对系统进行操作。这可以避免数据丢失或损坏的风险。 6.执行升级命令:按照官方文档或升级指南提供的步骤,执行GitLab升级命令。这通常涉及下载新版本的软件包、解压文件,并运行升级脚本。 7.检查升级结果:升级完成后,检查GitLab的运行状态和功能是否正常。确保所有存储库、用户和设置都正确地迁移到新版本中。 8.测试和回滚:在升级完成后,进行一些基本的测试,确保系统的稳定性和可用性。如果出现严重问题,可以考虑回滚到之前的版本,并与GitLab的支持团队联系以获取帮助。 总结起来,GitLab升级路线包括备份数据、查看升级说明、选择合适的版本、准备升级环境、停止GitLab服务、执行升级命令、检查升级结果以及测试和回滚。遵循这些步骤可以确保顺利完成GitLab升级过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值