この問題を解決するために、私は多くの問題に対処しました。
サーバー(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)