CentOS yum 저장소 오류 헤더 V4 RSA/SHA1 서명

CentOS yum 저장소 오류 헤더 V4 RSA/SHA1 서명

이 문제를 해결하기 위해 나는 많은 문제를 다루었습니다.

서버(CentOS 5.6)에 yum 저장소를 설치했습니다.

createrepo -v -s sha yumrepo/

SHA를 사용하는 것은 제가 발견한 초기 문제를 해결하는 것입니다. 내 저장소가 승인되지 않았습니다. ( [Errno -3] Error performing checksum)

다음 명령을 사용하여 GPG 키를 생성합니다.

gpg --gen-key

다음을 사용하여 패키지에 서명합니다. (패키지는 서버에 생성되지 않습니다.)

rpm --addsign mypackage-1.0-1.i386.rpm  

서명이 올바른지 확인하십시오.

rpm -vv --checksig mypackage-1.0-1.i386.rpm 
D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key
D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key
D: loading keyring from rpmdb
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Name rdonly mode=0x0
D:  read h#     205 Header sanity check: OK
D: added key gpg-pubkey-c105b9de-4e0fd3a3 to keyring
D:  read h#     313 Header sanity check: OK
D: added key gpg-pubkey-ebb3d90e-4ee5e6e8 to keyring
D: Using legacy gpg-pubkey(s) from rpmdb
D: Expected size:         3126 = lead(96)+sigs(528)+pad(0)+data(2502)
D:   Actual size:         3126
mypackage-1.0-1.i386.rpm:
    Header V4 RSA/SHA1 Signature, key ID ebb3d90e: OK
    Header SHA1 digest: OK (6d131be3c792fcc99da662f432c33facc86efc56)
    V4 RSA/SHA1 Signature, key ID ebb3d90e: OK
    MD5 digest: OK (76cfe98c4128d45da894a2b5b970e703)
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages

내 공개 키를 내보내세요.

gpg --armor --output MY-GPG-KEY --export 'MYNAME'

클라이언트(CentOS 5.6)에서 다음 내용으로 /etc/yum.repos.d/myrepo.repo 파일을 만들었습니다.

[myrepo]
name=myrepo
baseurl=https://login:[email protected]
enabled=1
gpgcheck=1
gpgkey=https://login:[email protected]/MY-GPG-KEY
protect=1

루트로 실행하는 것보다:

yum clean all
yum install mypackage

오류가 발생합니다.

Downloading Packages:
mypackage-0.1-1.noarch.rpm                                | 3.0 kB     00:00     
error: rpmts_HdrFromFdno: Header V4 RSA/SHA1 signature: BAD, key ID ebb3d90e

하지만:

rpm -q gpg-pubkey
gpg-pubkey-e8562897-459f07a4
gpg-pubkey-217521f6-45e8a532
gpg-pubkey-ebb3d90e-4ee5e6e8

패키지를 안전하게 설치하려면 어떻게 해야 합니까?

답변1

귀하의 답변은 다음 페이지에 있습니다: http://adminotes.blogspot.fr/2011/12/centos-6-rpm-sign-problem-v4-signatures.html

요약하면 Centos 6에서는 기본적으로 v4 서명이 사용되는 반면 Centos 5는 v3만 지원합니다.

유언장에 --force-v3-sigs깃발을 추가하면 %__gpg_sign_cmd작동하게 됩니다.

답변2

문제는 gpg 키입니다. 하나 있다허점따라서 손상된 서명이 생성됩니다. myrepo.repo를 편집하고 설정하는 것이 좋습니다 gpgcheck=1.

답변3

CentOS 6에서도 같은 문제가 발생했습니다. 나는 여기에 오는 나와 같은 사람들을 위해 내 솔루션을 문서화해야 한다고 생각했습니다.

CA 인증서 rpm의 이전 버전이 포함된 CentOS 6.0이 있습니다. ca-certificates-2010.63-3.el6.noarch.

yum을 사용하여 rpm을 설치할 때 다음 오류가 발생합니다. 오류: rpmts_HdrFromFdno: 헤더 V4 DSA/SHA256 서명, 키 ID 35511c46: BAD

rpm 패키지를 작업 중인 서버와 비교하고 명령 내역을 확인하여 문제를 위 패키지로 좁힐 수 있었습니다.

yum을 사용하여 최신 버전(ca-certificates-2017.2.14-65.0.1.el6_9.noarch)과 해당 종속성을 설치한 후 원래 설치하려고 했던 rpm을 설치할 수 있었습니다.

참고로 nss-softtoken 패키지는 ca-certificates 패키지와 동시에 업데이트되었습니다. 문서에 나와 있듯이 이것이 문제를 해결하는지 잘 모르겠습니다.https://www.centos.org/forums/viewtopic.php?t=50775.

답변4

$ sudo rpm --addsign zstd-1.4.4-1.cl8.x86_64.rpm
zstd-1.4.4-1.cl8.x86_64.rpm:
gpg: WARNING: unsafe ownership on homedir '/home/rongtao/.gnupg'
gpg: writing to 'zstd-1.4.4-1.cl8.x86_64.rpm.sig'
gpg: pinentry launched (49593 curses 1.1.0 /dev/pts/0 xterm-256color -)
gpg: RSA/SHA256 signature from: "3F2FA11D3D67D70B Rong Tao <[email protected]>"
gpg: WARNING: unsafe ownership on homedir '/home/rongtao/.gnupg'
gpg: writing to 'zstd-1.4.4-1.cl8.x86_64.rpm.sig'
gpg: RSA/SHA256 signature from: "3F2FA11D3D67D70B Rong Tao <[email protected]>"

$ rpm -qpi zstd-1.4.4-1.cl8.x86_64.rpm 
error: zstd-1.4.4-1.cl8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3d67d70b: BAD
error: zstd-1.4.4-1.cl8.x86_64.rpm: not an rpm package (or package manifest)

관련 정보