Obtenez les identifiants clés et les empreintes digitales d'apt dans un format lisible par machine


11

J'essaie de corriger un problème dans puppetlabs-apt pour permettre l'utilisation d'empreintes digitales clés comme identificateurs pour garantir qu'une certaine clé est présente par son empreinte digitale à 40 chiffres.

J'ai du mal à vérifier que la clé est présente et j'ai besoin d'une commande qui produira ce qui suit:

  • L'identifiant à 8 chiffres de la clé.
  • ID à 16 chiffres de la clé.
  • L'identifiant à 40 chiffres de la clé.

Existe-t-il une apt-keycommande que je peux utiliser pour sortir ces valeurs, une par ligne, afin que je puisse analyser la sortie et vérifier si la clé est présente?

Réponses:


21

apt-key adv vous permettra de passer directement les options à GnuPG.

Vous pouvez donc faire quelque chose comme ça pour obtenir une sortie analysable:

# 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:
⋮

Étant donné que vous ne vous intéressez qu'à l'empreinte digitale (les identifiants à 8 et 16 chiffres ne sont que la fin de l'empreinte digitale), | grep ^fpril semble vous donner les lignes qui vous intéressent.


Donc, prendre fingerprint[-8:](Python) me donnerait l'ID à 8 chiffres et fingerpint[-16:]me donnerait l'ID à 16 chiffres? Je suis
stupide

2
@NaftuliTzviKay L'empreinte digitale est un hachage dérivé de manière cryptographique. Il n'y a aucun avantage en termes de sécurité à le hacher à nouveau par rapport à le tronquer. De plus, les 8 chiffres et probablement les 16 chiffres sont trop courts pour être sécurisés; vous pouvez générer une clé en double par force brute. Seul le hachage complet est raisonnablement sécurisé. Je ne peux pas commenter si votre code python fait comme prévu, car je ne connais pas python ... Mais je suppose que oui. Ce ne sont que les 8 ou 16 derniers chiffres hexadécimaux.
derobert
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.