GPG:複数のファイルの署名を生成する

GPG:複数のファイルの署名を生成する

署名キーがキーカードに保存されている場合、GPGを使用して複数のファイルに署名する方法はありますか? (またはより具体的に言えば、私の場合はYubikey)。

現在署名したい複数のファイルを繰り返すスクリプトがあります。たとえば、次のようになります。

for pkg in html/packages/*.tar;
do
    gpg2 --detach-sign --armor -o $pkg.sig $pkg
done

これはうまくいきますが、キーカードにパスワードがあるため、各ファイルにパスワードを入力するように求められます。

すべての文書に一度に署名する方法はありますか?または、コール間でピンコードをキャッシュできるように署名プロセスにいくつかの回避策がありますか?

ベストアンサー1

スクリプトが使用可能な変数にPINを配置できる場合は、次のことができます。

for pkg in html/packages/*.tar;
do
  echo ${PIN} | gpg --batch --yes --passphrase-fd 0 --detach-sign --armor -o $pkg.sig $pkg
done

manページから:

--passphrase-fd n
       Read the passphrase from file descriptor n. Only the first line will be read
       from file descriptor n. If you use 0 for n, the passphrase will be read from
       STDIN. This can only be used if only one passphrase is supplied.

       Note that since Version 2.0 this passphrase is only used if the option --batch
       has also been given. Since Version 2.1 the --pinentry-mode also needs to be set
       to loopback.

passphrase-fdgpgパスワードをどこで受け取るのですか?)オプションについてhttps://stackoverflow.com/questions/19895122/how-to-use-gnupgs-passphrase-fd-argument役に立つ

おすすめ記事