Bagaimana saya bisa memverifikasi bahwa kunci PGP diimpor ke RPM?


13

Seseorang dapat mengimpor kunci dengan:

rpm - impor / jalur / ke / kunci

Tapi bagaimana Anda bisa tahu nanti jika Anda sudah mengimpor kunci ini? Mencoba mengembalikannya akan gagal dengan kesalahan dan saya mencoba untuk menghindari ini karena saya menggunakan Wayang untuk menginstal kunci.

Jawaban:


10

Anda dapat mengecek apakah kunci telah diimpor menggunakan rpm -qi gpg-pubkey-<version>-<release>. Jika terinstal, rpm akan memberi Anda semua informasi tentang hal itu, jika tidak, itu hanya akan keluar dengan nilai pengembalian 1, sehingga Anda bisa menambahkan ke unlessparameter boneka Anda parameter:

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

2
Cara yang lebih baik melalui beberapa kode yang saya temukan: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
Pemotongan mengikat Anda ke tata letak tertentu, yang tidak berfungsi pada sistem pengujian RHEL6 saya. Dan gpg sekarang termasuk sub kunci serta kunci pub. Jadi, saya akhirnya menggunakanKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer

5

Setiap kunci yang diimpor menambahkan entri rpmdb dari gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Cukup periksa nama itu ( gpg-pubkey) dan versi yang sesuai (8 karakter pertama dari sidik jari kunci dalam hex) di rpmdb.


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (referensi, termasuk cara mendapatkan FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov

2

Jika Anda hanya ingin memverifikasi bahwa kunci tersebut diimpor (tanpa memrogram informasi ini secara terprogram), Anda dapat mencantumkan semua kunci seperti ini:

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

atau untuk id:

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

Ini mungkin tampak cukup jelas bagi banyak orang, tetapi saya kira untuk beberapa orang, ini adalah jawaban yang lebih langsung untuk (setidaknya judul) dari pertanyaan itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.