Отримайте ключові ідентифікатори та відбитки пальців від apt у машиночитаному форматі


11

Я намагаюся виправити проблему в puppetlabs-apt, щоб дозволити використання ключових відбитків пальців як ідентифікаторів, щоб забезпечити наявність певного ключа за його 40-значним відбитком ключа.

У мене є труднощі перевірити наявність ключа, і мені потрібна команда, яка видасть наступне:

  • 8-значний ідентифікатор ключа.
  • 16-значний ідентифікатор ключа.
  • 40-значний ідентифікатор ключа.

Чи є apt-keyкоманда, яку я можу використовувати для виведення цих значень, по одному на рядок, щоб я міг проаналізувати вихід і перевірити, чи є ключ?

Відповіді:


21

apt-key adv дозволить вам безпосередньо передавати параметри GnuPG.

Таким чином, ви можете зробити щось подібне, щоб отримати синтаксичний аналіз:

# apt-key adv --list-public-keys --with-fingerprint --with-colons 
⋮
fpr:::::::::126C0D24BD8A2942CC7DF8AC7638D0442B90D010:
pub:-:4096:1:9D6D8F6BC857C906:2014-11-21:2022-11-19::-:Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>::scSC:
fpr:::::::::D21169141CECD440F2EB8DDA9D6D8F6BC857C906:
⋮

Оскільки вас цікавить лише відбиток пальців (8-значні та 16-значні ідентифікатори - це лише кінець відбитка пальця), | grep ^fprздавалося б, вам дадуть вам потрібні лінії.


Тож прийняття fingerprint[-8:](Python) отримає мені 8-значний ідентифікатор і fingerpint[-16:]отримає мені 16-значний ідентифікатор? Дурне мені за те, що це криптологічно отримані короткочасні хеши ...
Naftuli Kay

2
@NaftuliTzviKay Відбиток пальців - криптографічний хеш. Немає ніякої користі для безпеки, щоб знову її пересипати проти просто обрізання. Крім того, 8-розрядні та, ймовірно, 16-значні вони занадто короткі, щоб бути безпечними; ви можете генерувати повторюваний ключ грубою силою. Тільки повний хеш досить безпечний. Не можу коментувати, якщо ваш код python працює так, як очікувалося, так як я не знаю python ... Але я б здогадався, так. Це лише останні 8 або 16 шістнадцяткових цифр.
дероберт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.