yum 安装 rpm 签名问题

,

查看 dnf 是否开启 gpg 检查

  • gpgcheck:网络安装 gpg 检查

  • localpkg_gpgcheck:本地安装 gpg 检查

    cat /etc/dnf/dnf.conf
    
    [root@anolis-23-0 ~]# cat /etc/dnf/dnf.conf
    [main]
    gpgcheck=1
    installonly_limit=3
    clean_requirements_on_remove=True
    best=True
    skip_if_unavailable=False
    localpkg_gpgcheck=1
    [root@anolis-23-0 ~]# 
    

yum 跳过 gpg 检查

yum install -y --nogpgcheck package.rpm

rpm 跳过 gpg 检查

  • 如果使用 yum 无法跳过 gpg 检查,可以使用 rpm 进行跳过 gpg 检查
rpm -ivh --nosignature package.rpm

导入证书

# 直接导入公钥文件
rpm --import /tmp/rpm_key.asc
# 下载到指定文件夹
curl -o /tmp/rpm_key.asc https://keys.openpgp.org/vks/v1/by-fingerprint/FCF8724722CCBF9F51B1FBE376532BE7E3013105
# 查看公钥文件
cat /tmp/rpm_key.asc
# rpm 导入公钥文件
rpm --import /tmp/rpm_key.asc
# 使用 gpg 在 keys.openpgp.org 中下载公钥文件
gpg --keyserver keys.openpgp.org --recv-keys FCF8724722CCBF9F51B1FBE376532BE7E3013105
# 使用 gpg 导出公钥文件
gpg --export --armor FCF8724722CCBF9F51B1FBE376532BE7E3013105 > /tmp/rpm_key.asc
# rpm 导入公钥文件
rpm --import /tmp/rpm_key.asc

导入签名失败

[root@911k ~]# rpm --import /tmp/rpm_key.asc
error: /tmp/rpm_key.asc: key 1 import failed.
[root@911k ~]# 
[root@anolis-8-9 ~]# rpm --import /tmp/rpm_key.asc
错误:/tmp/rpm_key.asc:导入密钥 1 失败。
[root@anolis-8-9 ~]# 

查看签名失败

  • 版本过低,无法查看,比如:
    1. 在 龙蜥 Anolis OS 8.9(含)以前的系统,不支持 EdDSA/SHA256 算法
    2. 在 龙蜥 Anolis OS 23.0(含)以后的系统,支持 EdDSA/SHA256 算法
[root@911k ~]# rpm -Kv hello-world-1.0.0-39.an23.x86_64.rpm 
hello-world-1.0.0-39.an23.x86_64.rpm:
    Header DSA signature: BAD (package tag 267: invalid OpenPGP signature)
    Header SHA256 digest: OK
    Header SHA1 digest: OK
    Payload SHA256 digest: OK
    MD5 digest: OK
[root@911k ~]# 
[root@anolis-8-9 ~]# rpm -Kv hello-world-1.0.0-39.an23.x86_64.rpm 
hello-world-1.0.0-39.an23.x86_64.rpm:
    头DSA signature: BAD (package tag 267: invalid OpenPGP signature)
    头SHA256 digest: OK
    头SHA1 digest: OK
    Payload SHA256 digest: OK
    MD5 digest: OK
[root@anolis-8-9 ~]#