如何在Linux中验证包签名 Linux rpm –checksig验证

使用rpm –checksig可验证RPM包的完整性和来源,通过检查摘要和GPG签名确保软件未被篡改且来自可信发布者,需提前导入对应GPG密钥,否则验证失败。

如何在Linux中验证包签名 Linux rpm –checksig验证

linux中验证RPM包的签名,可以使用

rpm --checksig

命令来确认软件包的完整性和来源可靠性。这对于确保你安装的软件未被篡改、来自可信发布者非常重要。

使用 rpm –checksig 验证签名

基本语法如下:

rpm –checksig 包名.rpm

例如,要验证一个名为

example-package-1.0-1.x86_64.rpm

的包:

rpm –checksig example-package-1.0-1.x86_64.rpm

输出结果通常包含两部分验证信息:

  • digests:验证包内容的哈希值(如SHA256),确保数据完整性
  • signatures:验证GPG签名,确认包由可信私钥签名

如果输出显示:

example-package-1.0-1.x86_64.rpm: digests signatures OK

说明该包的摘要和签名都验证通过,是完整且可信的。

确保系统已导入正确的GPG密钥

RPM使用GPG密钥验证签名。如果系统未导入对应发行方的公钥,验证会失败。可通过以下命令查看已导入的密钥:

rpm -q gpg-pubkey

若缺少密钥,需手动导入。例如导入Fedora的密钥:

sudo rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

不同发行版路径可能不同,常见的有:

  • /etc/pki/rpm-gpg/
  • /usr/share/distribution-gpg-keys/

导入后再次运行

--checksig

即可识别签名。

常见问题与注意事项

验证失败可能由以下原因导致:

  • 未导入正确的GPG公钥
  • 软件包被修改或损坏
  • 使用了自定义或第三方仓库但未配置密钥
  • 系统时间错误(GPG签名对时间敏感)

建议在验证前确认系统时间准确,并从官方渠道获取GPG密钥。

基本上就这些。使用

rpm --checksig

配合正确的密钥管理,能有效保障RPM包的安全性。不复杂但容易忽略。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享