secret.asc
ASCII手袋(つまり、プレーンテキストで始まり、で始まる)PGP / GPG秘密/秘密鍵を含むファイルがありますが、GPGキーリングにインポートせずにそのファイル-----BEGIN PGP PRIVATE KEY BLOCK-----
の40文字のキーフィンガープリントを知りたいです。残念ながら、私が試したコマンドのどれもこの情報を提供できませんでした。
私が試したこと
次の失敗した試みは、Ubuntu Xenial 16.04.5、gpgバージョン1.4.20、およびgpg2バージョン2.1.11で実行されました。問題のキーは実験目的でのみ生成され、どの用途にも使用されないため、出力結果についてあまりに多くの内容が公開されても構いません。
$ gpg --with-fingerprint secret.asc
sec 2048R/161722B3 2018-09-12
uid Testing <[email protected]>
短いキーIDしかあり、指紋はありません。
$ gpg2 --with-fingerprint secret.asc
gpg: DBG: FIXME: merging secret key blocks is not anymore available
gpg: DBG: FIXME: No way to print secret key packets here
間違い。
$ gpg --with-fingerprint --no-default-keyring --secret-keyring ./secret.asc --list-secret-keys
gpg: [don't know]: invalid packet (ctb=2d)
gpg: keydb_search_first failed: invalid packet
間違い。
$ gpg2 --with-fingerprint --no-default-keyring --secret-keyring ./secret.asc --list-secret-keys
/home/jwodder/.gnupg/pubring.gpg
--------------------------------
...
何らかの理由で、これは私のキーホルダーの秘密鍵をリストします。
$ gpg --dry-run --import -vvvv secret.asc
gpg: using character set `utf-8'
gpg: armor: BEGIN PGP PRIVATE KEY BLOCK
gpg: armor header: Version: GnuPG v1
:secret key packet:
version 4, algo 1, created 1536783228, expires 0
skey[0]: [2048 bits]
skey[1]: [17 bits]
skey[2]: [2047 bits]
skey[3]: [1024 bits]
skey[4]: [1024 bits]
skey[5]: [1021 bits]
checksum: 386f
keyid: 07C0845B161722B3
:signature packet: algo 1, keyid 07C0845B161722B3
version 4, created 1536783228, md5len 0, sigclass 0x1f
digest algo 2, begin of digest b6 12
hashed subpkt 2 len 4 (sig created 2018-09-12)
hashed subpkt 12 len 22 (revocation key: c=80 a=1 f=9F3C2033494B382BEF691BB403BB6744793721A3)
hashed subpkt 7 len 1 (not revocable)
subpkt 16 len 8 (issuer key ID 07C0845B161722B3)
data: [2048 bits]
:user ID packet: "Testing <[email protected]>"
:signature packet: algo 1, keyid 07C0845B161722B3
version 4, created 1536783228, md5len 0, sigclass 0x13
digest algo 2, begin of digest 33 ee
hashed subpkt 2 len 4 (sig created 2018-09-12)
hashed subpkt 27 len 1 (key flags: 03)
hashed subpkt 9 len 4 (key expires after 32d3h46m)
hashed subpkt 11 len 5 (pref-sym-algos: 9 8 7 3 2)
hashed subpkt 21 len 5 (pref-hash-algos: 8 2 9 10 11)
hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
hashed subpkt 30 len 1 (features: 01)
hashed subpkt 23 len 1 (key server preferences: 80)
subpkt 16 len 8 (issuer key ID 07C0845B161722B3)
data: [2046 bits]
gpg: sec 2048R/161722B3 2018-09-12 Testing <[email protected]>
gpg: key 161722B3: secret key imported
gpg: pub 2048R/161722B3 2018-09-12 Testing <[email protected]>
gpg: writing to `/home/jwodder/.gnupg/pubring.gpg'
gpg: using PGP trust model
gpg: key 793721A3: accepted as trusted key
gpg: key 161722B3: public key "[User ID not found]" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
gpg: secret keys read: 1
gpg: secret keys imported: 1
見つけることができる唯一の指紋は失効キーの指紋です。
$ gpg2 --dry-run --import -vvvv secret.asc
上記と同じ出力。
$ gpg --list-packets secret.asc
$ gpg2 --list-packets secret.asc
--dry-run --import -vvvv
デフォルトでは、行なしでコマンドと同じ出力ですgpg:
。
ベストアンサー1
現在のパイプラインでこれを行うことができるため、GnuPGの新しいバージョンでは変更される可能性があります。
$ gpg --with-colons --import-options show-only --import --fingerprint < secret.asc | awk -F: '$1 == "fpr" {print $10;}'
主なゲームチェンジャーはimport-options
次のオプションです。偽の輸入。私たちはファイルをインポートするのと同じように単にファイルを処理していますが、そうではありません。
オプション--with-colons
保証安定そして機械分析可能awk
前のセクションで使用した形式です。
awk
指紋付きの行の列10を印刷します(で始まるfpr
)。