Как сопоставить экспортированные пары открытого и закрытого ключей OpenPGP?
У меня есть несколько резервных копий файлов открытого и закрытого ключей. Как проверить, какой файл открытого ключа соответствует какому файлу закрытого ключа?
Я сгенерировал 2048 байтных открытых и закрытых пар ключей GnuPG, используя
gpg --gen-key
Чтобы сделать резервную копию открытых ключей, я экспортировал их, используя
gpg --armor --output ~/gpg_keys_backup/<Public Key Id>-public.key --export <Public Key Id>
Для резервного копирования закрытых ключей я экспортировал их, используя
gpg --armor --output ~/gpg_keys_backup/<Private Key ID>-private.key --export-secret-keys <Private Key ID>
Как определить, какие ключи резервного копирования принадлежат паре?
2 ответа
Перечислив содержимое файла секретного ключа, вы можете запросить, к какому общему ключу принадлежит секретный ключ.
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
Последняя строка цитируется keyid
содержит идентификатор длинного ключа открытого ключа.
Прежде всего, идентификатор открытого ключа и идентификатор закрытого ключа совпадают, поэтому имена файлов должны совпадать с самого начала.
Во-вторых, вам на самом деле не нужно делать резервную копию открытого ключа. Просто импортируйте закрытый ключ (который содержит как закрытый, так и открытый ключ), и будут импортированы как закрытый, так и открытый ключи.
gpg --import private.key
Но если предположить, что имена файлов по какой-то причине не совпадают, вы можете запустить
gpg yourfile.key
, который напечатает что-то вроде:
pub 2048R/1234ABCD 2016-12-31
sub 2048R/5678EFGH 2016-12-31
Сопоставьте идентификаторы ключей закрытых / открытых ключей (в этом примере 1234ABCD).
Если у вас есть тонна ключей, вместо того, чтобы сопоставлять их, может быть проще просто проигнорировать экспортированные открытые ключи и восстановить их из ваших закрытых ключей.
gpg --import private.key
gpg --armor --output <Key Id>-public.key --export <Key Id>