署名キーがキーカードに保存されている場合、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-fd
(gpg
パスワードをどこで受け取るのですか?)オプションについてhttps://stackoverflow.com/questions/19895122/how-to-use-gnupgs-passphrase-fd-argument役に立つ