Як я можу переконатися, що ключ PGP імпортується в RPM?


13

Можна імпортувати ключ за допомогою:

rpm - імпорт / шлях / до / клавіша

Але як ви можете пізніше сказати, якщо ви вже імпортували цей ключ? Спроба повторного імпорту не вдасться з помилкою, і я намагаюся уникнути цього, оскільки я використовую Лялечку для встановлення ключа.

Відповіді:


10

Ви можете двічі перевірити, чи ключ вже імпортований за допомогою rpm -qi gpg-pubkey-<version>-<release>. Якщо він встановлений, rpm дасть вам всю інформацію про нього, якщо ні, він просто вийде зі зворотним значенням 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 )
Тед Златанов,

2

Якщо ви просто хочете перевірити, чи імпортується ключ (без програмної обробки цієї інформації), ви можете перелічити всі такі ключі:

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

або для ідентифікаторів:

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

Багатьом це може здатися цілком очевидним, але для деяких я вважаю, що це більш пряма відповідь на (принаймні заголовок) питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.