web-dev-qa-db-fra.com

Comment faire correspondre les paires de clés publique et privée OpenPGP exportées?

J'ai quelques fichiers de clé publique et privée sauvegardés. Comment vérifier quel fichier de clé publique correspond à quel fichier de clé privée?

J'avais généré 2048 paires de clés publiques et privées GnuPG en utilisant

gpg --gen-key

Pour sauvegarder la ou les clés publiques, je les ai exportées à l'aide de

gpg --armor --output ~/gpg_keys_backup/<Public Key Id>-public.key --export <Public Key Id>

Pour sauvegarder la ou les clés privées, je les ai exportées à l'aide de

gpg --armor --output ~/gpg_keys_backup/<Private Key ID>-private.key --export-secret-keys <Private Key ID>

Comment déterminer les clés sauvegardées appartenant à une paire?

2
PJ Singh

En répertoriant le contenu du fichier de clé secrète, vous pouvez demander à quelle clé publique appartient une clé secrète.

gpg --list-packets [secret-key-file] | head
:secret key packet:
        version 4, algo 1, created 1356475387, expires 0
        pkey[0]: [8192 bits]
        pkey[1]: [17 bits]
        gnu-dummy S2K, algo: 0, simple checksum, hash: 0
        protect IV: 
        keyid: 4E1F799AA4FF2279

La dernière ligne citée keyid contient l'ID clé longue de la clé publique.

2
Jens Erat

Tout d'abord, l'ID de la clé publique et l'ID de la clé privée sont les mêmes; vos noms de fichiers doivent donc avoir été appariés pour commencer.

Deuxièmement, vous n'avez pas besoin de sauvegarder la clé publique. Importez simplement la clé privée (qui contient à la fois les clés privée et publique) et les clés privée et publique seront importées.

gpg --import private.key


Mais en supposant que les noms de fichiers ne correspondent pas pour une raison quelconque, vous pouvez exécuter

gpg yourfile.key, qui imprimera quelque chose comme:

pub  2048R/1234ABCD 2016-12-31
sub  2048R/5678EFGH 2016-12-31

Faites correspondre les ID de clé des clés privées/publiques (dans cet exemple, 1234ABCD).


Si vous avez une tonne de clés au lieu de les faire correspondre, il peut être plus simple d'ignorer vos clés publiques exportées et de les régénérer à partir de vos clés privées.

gpg --import private.key
gpg --armor --output <Key Id>-public.key --export <Key Id>
1
wisbucky