dnf 安装自签名包错误:GPG 检查失败

dnf 安装自签名包错误:GPG 检查失败

我有一个存储库和一个软件包,想从 Fedora 39 上的该存储库安装它。

该存储库在这里用于(测试目的,忽略存储桶名称 ubuntu,它包含 rpm 存储库)https://storage.googleapis.com/repotestubuntu2204通过创建createrepo

该包sample_project-1.3.5-1.fc39.x86_64.rpm只是通过 C hello world 签名rpm --addsign,通过生成的密钥gpg --gen-key(RSA 4096 位,无密码,无过期)

添加此存储库

dnf config-manager --add-repo https://storage.googleapis.com/repotestubuntu2204/sample_project.repo
Adding repo from: https://storage.googleapis.com/repotestubuntu2204/sample_project.repo

看来没问题。现在尝试安装该软件包

dnf install -yv sample_project
  ...
Using rpmkeys executable at /usr/bin/rpmkeys to verify signatures
Package sample_project-1.3.5-1.fc39.x86_64.rpm is not signed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED

所以它告诉我该软件包未签名,并且它正在使用 rpmkeys 来验证这一点。好的,下载 rpm 本身并检查签名

wget https://storage.googleapis.com/repotestubuntu2204/sample_project-1.3.5-1.fc39.x86_64.rpm

rpmkeys -Kv sample_project-1.3.5-1.fc39.x86_64.rpm 
sample_project-1.3.5-1.fc39.x86_64.rpm:
    Header SHA256 digest: OK
    Header SHA1 digest: OK
    Payload SHA256 digest: OK
    MD5 digest: OK

我尝试了 gpg import 和 rpm --import - 没有任何帮助,而且据我所知,它不应该 b/c .repo 文件中存在指向 gpgkey 的链接,该文件似乎在添加存储库时已成功导入。

使用完全相同的程序为 openSUSE 构建的 rpm 可以正常工作,zypper 添加存储库,要求信任公钥,仅此而已。然而,Fedora 不会询问是否信任密钥,这有点可疑。但手动下载密钥文件并导入它也没有帮助。

yum install 给出同样的错误。 rpm -i 工作没有任何问题。签名有什么问题吗?

答案1

想通了。在调试 Fedora 的 rpm 签名时,我添加了--showrc选项,因此签名命令是rpm --showrc --verbose --addsign *.rpm,结果证明它没有对包头进行签名。rpm --addsign *.rpm作品

相关内容