RPMパッケージのキーIDをRPM-GPG-KEYのキーフィンガープリントと比較します。

RPMパッケージのキーIDをRPM-GPG-KEYのキーフィンガープリントと比較します。

RPMパッケージで作業している間に、利用可能なGPGキーの署名を確認する必要があることがよくあります。

使用

rpm -qip --nosignature <package.rpm> | grep Signature

次のキーIDを教えてください。

Signature   : RSA/SHA1, Mon 28. Aug 2019 06:00:00 AM CET, Key ID 1234567890abcdef

したがって、

gpg --with-fingerprint <RPM-GPG-KEY-package>

キー指紋を教えてください。

Key fingerprint = 0987 6543 21FE DCBA 0987 6543 21FE 1234 5678 90AB CDEF

2つの出力を比較するのは簡単ではありませんが、指紋の代わりに言及されたキーIDをどのように取得できますか?

答え1

rpm --import GPGFILE以下を使用してGPGキーをインポートできます。rpmkeys --checksig foo.rpm

答え2

調べて知った事実キーIDは通常、キーフィンガープリントの最後の8バイトまたは16バイトです。だから出力から抽出したいと思います。この目標を達成する方法は?

うまくいくように見える次のアプローチが見つかりました。

キーID.sh

#! /bin/bash

KEY_PATH=$1
KEY_FINGERPRINT=$(gpg --with-fingerprint ${KEY_PATH} | grep "Key fingerprint" | cut -d "=" -f 2 | tr -d ' ' | tr '[:upper:]' '[:lower:]')

echo ${KEY_FINGERPRINT} | grep -o '.\{8\}$'
echo ${KEY_FINGERPRINT} | grep -o '.\{16\}$'

関連情報