web-dev-qa-db-ja.com

Yumは、Kubernetesリポジトリを追加するときに「rpm --import」の後でもGPGキーを要求します

kubernetesリポジトリをAmazon Linux 2インスタンスに追加しようとしていますが、GPGキーの自動追加に苦労しています。

これは私の /etc/yum.repos.d/kubernetes.repo...

[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

次に、GPGキーをインポートしようとします。


~ # wget https://packages.cloud.google.com/yum/doc/yum-key.gpg \
         https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

~ # rpm --import *.gpg

ただし、yumコマンドを実行しても、キーがわかりません。

# yum upgrade -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
kubernetes/signature                                                                                                                                                                                                   |  454 B  00:00:00     
Retrieving key from https://packages.cloud.google.com/yum/doc/yum-key.gpg
Importing GPG key 0xA7317B0F:
 Userid     : "Google Cloud Packages Automatic Signing Key <[email protected]>"
 Fingerprint: d0bc 747f d8ca f711 7500 d6fa 3746 c208 a731 7b0f
 From       : https://packages.cloud.google.com/yum/doc/yum-key.gpg
Retrieving key from https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
kubernetes/signature                                                                                                                                                                                                   | 1.4 kB  00:00:00 !!! 
https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes
Trying other mirror.
No packages marked for update

手動で受け入れようとしても機能しません。

# yum upgrade
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
kubernetes/signature                                                                                                                                                                                                   |  454 B  00:00:00     
Retrieving key from https://packages.cloud.google.com/yum/doc/yum-key.gpg
Importing GPG key 0xA7317B0F:
 Userid     : "Google Cloud Packages Automatic Signing Key <[email protected]>"
 Fingerprint: d0bc 747f d8ca f711 7500 d6fa 3746 c208 a731 7b0f
 From       : https://packages.cloud.google.com/yum/doc/yum-key.gpg
Is this ok [y/N]: y              <<<<< Yes, I accept it!
Retrieving key from https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
kubernetes/signature                                                                                                                                                                                                   | 1.4 kB  00:00:01 !!! 
https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes
Trying other mirror.
No packages marked for update

YUMがそれを受け入れるようにキーを追加するにはどうすればよいですか?

5
KeepLearning

これは既知の問題です( https://github.com/kubernetes/kubernetes/issues/60134 を参照)。 GPGチェックを無効にすることで回避します:set repo_gpgcheck=0 in /etc/yum.repos.d/kubernetes.repo

drakedevel へのクレジット:

これは、Amazon Linux 2が古いバージョンのGnuPGを出荷しているためだと思います。repomd.xml.asc署名については、新しいバージョンが必要です。

GnuPG 2.0.22は、未知のクリティカルビットが原因でキーBA07F4FBからの署名が不適切であると想定して、リポジトリメタデータの署名を完全に拒否します。私はそれが言及している重要なビットを理解することができませんでした-署名またはキーに何もないようです-GnuPG 2.0.22が動揺しているものは何でも根本的な原因である可能性が高いです。

これはrepomdシグネチャにのみ影響するため、他のいくつかの提案があるように、gpgcheckを無効にする理由はありません。 repo_gpgcheckを無効にするだけで十分であり、パッケージの署名検証が保持されます(ただし、それでも理想的な回避策ではありません...)

6
Edward