Rpm
將 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
由於比較兩個輸出並不容易,如何獲得提到的 Key ID 而不是整個指紋?
在研究過程中,我發現密鑰 ID 通常是密鑰指紋的最後 8 或 16 個字節。所以我想從輸出中提取它們。如何做到這一點?
我發現以下似乎可行的方法:
keyID.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\}$'
您可以使用導入 GPG 密鑰
rpm --import GPGFILE
,然後執行rpmkeys --checksig foo.rpm