rpm -K报告丢失密钥

pwa*_*wan 6 rpm gnupg

我正在使用rpm版本4.4.2.3-18.el5和gpg版本1.4-2的CentOS 5.4主机我使用命令签署了rpm

> rpm --define '_signature gpg' --define '_gpg_path /path/to/keys' --define '_gpg_name mygpgname' -K myrpm.rpm
Run Code Online (Sandbox Code Playgroud)

命令成功,重复该命令会发出一条警告消息,表明rpm已经使用密钥签名.

但是,当我尝试使用rpm -K验证签名时,它返回NOT OK(MISSING_KEYS)结果.

> rpm -K myrpm.rpm

> GNUPGHOME=/path/to/keys rpm --define '_signature gpg' --define '_gnupghome /path/to/keys' --define '_gpg_name mygpgname' -K myrpm.rpm
myrpm.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#12345678)
Run Code Online (Sandbox Code Playgroud)

我假设我正在以某种方式设置错误的路径.我也尝试过将GPGPATH =/path /设置为/ keys而没有运气.

有没有人有任何建议如何让rpm -K找到丢失的密钥?

Edw*_*uck 7

您是否使用该rpm --import <key>命令导入了公共GPG密钥?

如果您不想将GPG密钥存储在默认的RPM配置数据库中,则需要在命令中提供_gpg_path定义.请注意,最后一个命令缺少_gpg_path,尽管它几乎包含了您可能需要的所有其他gpg*定义.

就个人而言,我在$(HOME)/.rpmmacros文件中设置了这样的定义,以避免在命令行上多次输入这些内容.

  • 是的,这很有效.首先我导出了我的密钥,然后执行rpm --import> GNUPGHOME =/path/to/keys gpg --export -a mygpgname> key.asc> rpm --import /path/to/keys/key.asc> rpm -K myrpm.rpm myrpm.rpm:(sha1)dsa md5 gpg好的 (2认同)