मैं कैसे सत्यापित कर सकता हूँ कि RPM में PGP कुंजी आयात की गई है?


13

एक के साथ एक कुंजी आयात कर सकते हैं:

rpm --import / path / to / key

लेकिन आप बाद में कैसे बता सकते हैं कि आपने पहले ही इस कुंजी को आयात किया है? रीइम्पोर्ट करने की कोशिश करना एक त्रुटि के साथ विफल हो जाएगा और मैं इससे बचने की कोशिश कर रहा हूं क्योंकि मैं कुंजी स्थापित करने के लिए कठपुतली का उपयोग कर रहा हूं।

जवाबों:


10

यदि कोई कुंजी पहले से ही आयात कर रहा है, तो आप दोबारा जांच सकते हैं rpm -qi gpg-pubkey-<version>-<release>। यदि यह स्थापित है, तो आरपीएम आपको इसके बारे में पूरी जानकारी देगा, यदि नहीं, तो यह सिर्फ 1 के रिटर्न मान के साथ बाहर निकल जाएगा, इसलिए आप अपने कठपुतली नुस्खा में एक unlessपैरामीटर जोड़ सकते हैं :

exec { "rpm --import /path/to/package":
  # ...
  unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}

2
कुछ कोड के माध्यम से बेहतर तरीका मुझे मिला:KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID
lsd

2
कट आपको एक विशिष्ट लेआउट से जोड़ता है, जो मेरे RHEL6 परीक्षण प्रणाली पर काम नहीं करता है। और gpg में अब उप कुंजी के साथ-साथ पब कुंजी भी शामिल है। तो, मैं का उपयोग कर समाप्त हो गयाKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer

5

आयात की गई प्रत्येक कुंजी एक rpmdb प्रविष्टि जोड़ती है gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>। बस उस नाम ( gpg-pubkey) और उचित संस्करण (हेक्स में कुंजी फिंगरप्रिंट के पहले 8 वर्ण) के लिए rpmdb में देखें।


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (कैसे प्राप्त करने के लिए सहित संदर्भ, FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
टेड Zlatanov

2

यदि आप केवल यह सत्यापित करना चाहते हैं कि कुंजी आयात की गई है (प्रोग्राम जानकारी के बिना इस जानकारी को संसाधित किए बिना) तो आप इस तरह से सभी कुंजियों को सूचीबद्ध कर सकते हैं:

rpm -qi gpg-pubkey-\* | grep -E ^Packager

या आईडी के लिए:

rpm -qi gpg-pubkey-\* | grep -E "^Version  "

यह कई लोगों के लिए काफी स्पष्ट लग सकता है, लेकिन मुझे लगता है कि कुछ के लिए यह सवाल का अधिक (कम से कम शीर्षक) सीधा जवाब है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.