![RPM 패키지의 키 ID를 RPM-GPG-KEY의 키 지문과 비교합니다.](https://linux55.com/image/159658/RPM%20%ED%8C%A8%ED%82%A4%EC%A7%80%EC%9D%98%20%ED%82%A4%20ID%EB%A5%BC%20RPM-GPG-KEY%EC%9D%98%20%ED%82%A4%20%EC%A7%80%EB%AC%B8%EA%B3%BC%20%EB%B9%84%EA%B5%90%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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
두 출력을 비교하는 것이 쉽지 않은데 전체 지문 대신 언급된 키 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\}$'