GPG2キーから指紋を抽出しようとしています。これにより、pass init $GPG2_FINGERPRINT
初期化のために指紋が渡されます。
次の例では、指紋の値が必要です0126E6FFD15E33B8BCE7B748E79142F98581FC60
。
$ gpg2 --list-signatures
pub rsa2048 2021-10-14 [SCEA]
0126E6FFD15E33B8BCE7B748E79142F98581FC60
uid [ unknown] User 1 (User 1) <[email protected]>
sig 3 E79142F98581FC60 2021-10-14 User 1 (User 1) <[email protected]>
sub rsa2048 2021-10-14 [SEA]
sig E79142F98581FC60 2021-10-14 User 1 (User 1) <[email protected]>
サブキーを使用しても指紋が返されます--with-colons
。サブ情報なしでクリーンな出力を取得するには?
省略し--list-keys
て使用すると--with-fingerprint
非常に近づきます...警告が表示されると予想しますgpg: WARNING: no command supplied. Trying to guess what you mean
。クリーンな出力を得るために警告をリダイレクトできますが、正しいコマンドを使用したいと思います。
これを行う方法は他にありますか?究極の目標は、pass
スクリプトを介してGPGキーを設定することです(ユーザー対話なし)。
$ gpg2 --with-fingerprint --with-colons ./pubring.kbx
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub:-:2048:1:E79142F98581FC60:1634220843:::-:
fpr:::::::::0126E6FFD15E33B8BCE7B748E79142F98581FC60:
uid:::::::::User 1 (User 1) <[email protected]>:
sub:-:2048:1:213A9C4C15D3AAA9:1634220843::::
答え1
サブキーを使用しても指紋が返されます
--with-colons
。
このオプションは、--with-colons
マシンが解析できる形式で出力をエクスポートするため、正しい選択です。
サブ情報なしでクリーンな出力を取得するには?
私はこれをに配管することを提案しますawk
。出力--with-colons
は正規化され、各行はフィールド1のデータ型を持ちます。データ型を持つすべての行はpub
公開鍵(サブキーとは反対)を表し、後続の行(データ型fpr
)にはフィールド10の指紋文字列が含まれます。
awk
これにより、「pub:」で始まる行をスキャンし、後続の行でフィールド10の指紋を処理することで、出力の解析が簡単になります。
たとえば、以下はキーリングのすべての公開鍵指紋を印刷します。
gpg --with-colons -k | awk -F: '/^pub:.*/ { getline; print $10}'