gitlab - GitLab:即使在成功导入和添加后,RPM 签名也会失败
问题描述
在 RPM 签名上做 PoC,目前卡住了。我使用 git bash 在笔记本电脑上创建了 GPG 密钥。然后导出公钥、私钥和trustdb。在我的 GitLab 项目中,我添加了所有 3 个文件。我的 yml 如下所示:
rpm_sign:
stage: sign
image: centos:latest
only:
- master
script:
- yum install -y rpm-sign
- gpg --import public.pgp
- gpg --import private.pgp
- gpg --import-ownertrust < trust.txt
- gpg --list-keys --keyid-format LONG
- gpg --list-secret-keys --keyid-format LONG
- rpm --define "_gpg_name eavibis" --define "_signature gpg" --addsign ics-service-rpm-1.0.3-1.noarch.rpm
- rpm --checksig ics-service-rpm-1.0.3-1.noarch.rpm
- tar -zcvf signed_rpm.tar.gz *.rpm
tags:
- docker-devuser
artifacts:
paths:
- $CI_PROJECT_DIR/*.tar.gz
expire_in: 1 hour
如果我运行 addsign 命令两次,在第二次运行时,我会收到以下消息:
警告:ics-service-rpm-1.0.3-1.noarch.rpm 已经包含相同的签名,跳过
这清楚地表明该标志已被添加。但是,在 checksig 命令输出中,我收到以下错误:
ics-service-rpm-1.0.3-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#3d525b88)
我究竟做错了什么?
解决方案
您必须将 GPG 导入 rpmdb:
rpm --import public.pgp
推荐阅读
- python - 我将如何计算这个 python 程序的运行时间、内存和 CPU 使用率?
- debugging - 模拟器中的 Apple Id 登录授权
- c - linux中的参数到argv
- firebase - 错误状态:DocumentSnapshotPlatform 中不存在字段
- python - 如何通过虚拟相机将 OpenCV 视频源发送到 Python?
- azure-functions - Azure Functions 有哪些选项可以使用额外的硬盘驱动器?
- reactjs - 如何在同一行设置段落、按钮和文本框?
- database - 如何在 Docker 中将 mg_client 连接到容器外?
- amazon-web-services - 如何在 AWS Educate 中检查正在运行的资源
- shell - bash:通过grep匹配单引号和双引号