GitLab:即使在成功导入和添加签名后,RPM 签名也会失败
GitLab: RPM signing fails even after successful import and addsign
正在对 RPM 签名进行 PoC,目前卡住了。我使用 git bash 在我的笔记本电脑上创建了一个 GPG 密钥。然后导出 public 密钥、私钥和 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 不正确(缺少密钥:(MD5) PGP#3d525b88)
我做错了什么?
您必须将 GPG 导入 rpmdb:
rpm --import public.pgp
正在对 RPM 签名进行 PoC,目前卡住了。我使用 git bash 在我的笔记本电脑上创建了一个 GPG 密钥。然后导出 public 密钥、私钥和 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 不正确(缺少密钥:(MD5) PGP#3d525b88)
我做错了什么?
您必须将 GPG 导入 rpmdb:
rpm --import public.pgp