Как отобразить ключевые данные gpg без импорта?
У меня есть копия ключа GPG репозитория postgresql apt и я хотел бы просмотреть детали ключа gpg, как он входит в файл. Возможно ли это без импорта его в брелок?
5 ответов:
есть несколько уровней детализации, которые вы можете получить при просмотре ключевых данных OpenPGP: базовая сводка, машиночитаемый вывод этой сводки или подробный (и очень технический) список отдельных пакетов OpenPGP.
Основная Ключевая Информация
для краткого пика в ключевом файле OpenPGP вы можете просто передать имя файла в качестве параметра или канала в ключевых данных через STDIN. Если команда не передается, GnuPG пытается угадать, что вы хотите сделать-и для ключевых данных, это печать резюме на ключ:
$ gpg a4ff2279.asc gpg: WARNING: no command supplied. Trying to guess what you mean ... pub rsa8192 2012-12-25 [SC] 0D69E11F12BDBA077B3726AB4E1F799AA4FF2279 uid Jens Erat (born 1988-01-19 in Stuttgart, Germany) uid Jens Erat <jens.erat@fsfe.org> uid Jens Erat <jens.erat@uni-konstanz.de> uid Jens Erat <jabber@jenserat.de> uid Jens Erat <email@jenserat.de> uid [jpeg image of size 12899] sub rsa4096 2012-12-26 [E] [revoked: 2014-03-26] sub rsa4096 2012-12-26 [S] [revoked: 2014-03-26] sub rsa2048 2013-01-23 [S] [expires: 2023-01-21] sub rsa2048 2013-01-23 [E] [expires: 2023-01-21] sub rsa4096 2014-03-26 [S] [expires: 2020-09-03] sub rsa4096 2014-03-26 [E] [expires: 2020-09-03] sub rsa4096 2014-11-22 [A] [revoked: 2016-03-01] sub rsa4096 2016-02-24 [A] [expires: 2020-02-23]
установка
--keyid-format 0xlong
, длинные идентификаторы ключей печатаются вместо небезопасные короткие идентификаторы ключей:$ gpg a4ff2279.asc gpg: WARNING: no command supplied. Trying to guess what you mean ... pub rsa8192/0x4E1F799AA4FF2279 2012-12-25 [SC] 0D69E11F12BDBA077B3726AB4E1F799AA4FF2279 uid Jens Erat (born 1988-01-19 in Stuttgart, Germany) uid Jens Erat <jens.erat@fsfe.org> uid Jens Erat <jens.erat@uni-konstanz.de> uid Jens Erat <jabber@jenserat.de> uid Jens Erat <email@jenserat.de> uid [jpeg image of size 12899] sub rsa4096/0x0F3ED8E6759A536E 2012-12-26 [E] [revoked: 2014-03-26] sub rsa4096/0x2D6761A7CC85941A 2012-12-26 [S] [revoked: 2014-03-26] sub rsa2048/0x9FF7E53ACB4BD3EE 2013-01-23 [S] [expires: 2023-01-21] sub rsa2048/0x5C88F5D83E2554DF 2013-01-23 [E] [expires: 2023-01-21] sub rsa4096/0x8E78E44DFB1B55E9 2014-03-26 [S] [expires: 2020-09-03] sub rsa4096/0xCC73B287A4388025 2014-03-26 [E] [expires: 2020-09-03] sub rsa4096/0x382D23D4C9773A5C 2014-11-22 [A] [revoked: 2016-03-01] sub rsa4096/0xFF37A70EDCBB4926 2016-02-24 [A] [expires: 2020-02-23] pub rsa1024/0x7F60B22EA4FF2279 2014-06-16 [SCEA] [revoked: 2016-08-16]
предоставляет
-v
или-vv
даже добавить больше информации. Я предпочитаю печатать детали пакета в этом случае, хотя (см. ниже).Машиночитаемый Вывод
GnuPG также имеет разделенный двоеточием формат вывода, который легко разбирается и имеет стабильный формат. Элемент формат задокументирован в GnuPG
doc/DETAILS
file. Возможность получить этот формат--with-colons
.$ gpg --with-colons a4ff2279.asc gpg: WARNING: no command supplied. Trying to guess what you mean ... pub:-:8192:1:4E1F799AA4FF2279:1356475387:::-: uid:::::::::Jens Erat (born 1988-01-19 in Stuttgart, Germany): uid:::::::::Jens Erat <jens.erat@fsfe.org>: uid:::::::::Jens Erat <jens.erat@uni-konstanz.de>: uid:::::::::Jens Erat <jabber@jenserat.de>: uid:::::::::Jens Erat <email@jenserat.de>: uat:::::::::1 12921: sub:-:4096:1:0F3ED8E6759A536E:1356517233:1482747633::: sub:-:4096:1:2D6761A7CC85941A:1356517456:1482747856::: sub:-:2048:1:9FF7E53ACB4BD3EE:1358985314:1674345314::: sub:-:2048:1:5C88F5D83E2554DF:1358985467:1674345467::: sub:-:4096:1:8E78E44DFB1B55E9:1395870592:1599164118::: sub:-:4096:1:CC73B287A4388025:1395870720:1599164118::: sub:-:4096:1:382D23D4C9773A5C:1416680427:1479752427::: sub:-:4096:1:FF37A70EDCBB4926:1456322829:1582466829:::
начиная с GnuPG 2.1.23,
gpg: WARNING: no command supplied. Trying to guess what you mean ...
предупреждение можно опустить с помощью вместе с (это также работает без--with-colons
, конечно):$ gpg --with-colons --import-options show-only --import a4ff2279 [snip]
для более старых версий: предупреждающее сообщение печатается на STDERR, поэтому вы можете просто прочитать STDIN, чтобы разделить ключевую информацию от предупреждение.
Технические Детали: Перечисление Пакетов OpenPGP
без установки каких-либо дополнительных пакетов, вы можете использовать
gpg --list-packets [file]
для просмотра информации о пакетах OpenPGP, содержащихся в файле.$ gpg --list-packets a4ff2279.asc :public key packet: version 4, algo 1, created 1356475387, expires 0 pkey[0]: [8192 bits] pkey[1]: [17 bits] keyid: 4E1F799AA4FF2279 :user ID packet: "Jens Erat (born 1988-01-19 in Stuttgart, Germany)" :signature packet: algo 1, keyid 4E1F799AA4FF2279 version 4, created 1356516623, md5len 0, sigclass 0x13 digest algo 2, begin of digest 18 46 hashed subpkt 27 len 1 (key flags: 03) [snip]
The
pgpdump [file]
инструмент работает аналогичноgpg --list-packets
и предоставляет аналогичный вывод, но разрешает все эти идентификаторы алгоритмов для читаемых представлений. Он доступен, вероятно, для всех соответствующих дистрибутивов (on Производные Debian, пакет называетсяpgpdump
как и сам инструмент).$ pgpdump a4ff2279.asc Old: Public Key Packet(tag 6)(1037 bytes) Ver 4 - new Public key creation time - Tue Dec 25 23:43:07 CET 2012 Pub alg - RSA Encrypt or Sign(pub 1) RSA n(8192 bits) - ... RSA e(17 bits) - ... Old: User ID Packet(tag 13)(49 bytes) User ID - Jens Erat (born 1988-01-19 in Stuttgart, Germany) Old: Signature Packet(tag 2)(1083 bytes) Ver 4 - new Sig type - Positive certification of a User ID and Public Key packet(0x13). Pub alg - RSA Encrypt or Sign(pub 1) Hash alg - SHA1(hash 2) Hashed Sub: key flags(sub 27)(1 bytes) [snip]
Я, кажется, в состоянии ладить с просто:
$gpg <path_to_file>
вывод такой:
$ gpg /tmp/keys/something.asc pub 1024D/560C6C26 2014-11-26 Something <something@none.org> sub 2048g/0C1ACCA6 2014-11-26
ОП не уточнил, в частности, какая ключевая информация имеет значение. Этот выход-все, что меня волнует.
чтобы проверить и перечислить отпечаток ключа (не импортируя его сначала в брелок), введите
gpg --with-fingerprint <filename>
параметр
--list-packets
анализирует данные pgp из файла и выводит его структуру-очень техническим способом. При анализе открытого ключа вы можете легко извлечь идентификаторы пользователей и идентификаторы ключей подписей.будьте осторожны, что эта команда только анализирует формат данных, он не выполняет проверку подписей или подобных вещей.
когда я наткнулся на этот ответ, я искал способ получить вывод, который легко разобрать. Для меня вариант
--with-colons
сделал свое дело:$ gpg --with-colons file sec::4096:1:AAAAAAAAAAAAAAAA:YYYY-MM-DD::::Name (comment) email ssb::4096:1:BBBBBBBBBBBBBBBB:YYYY-MM-DD::::
документация может быть найдена здесь.