スクリプトから暗号化された(GPG)ファイルを動的にインポートする方法はありますか?

スクリプトから暗号化された(GPG)ファイルを動的にインポートする方法はありますか?

取得したファイルに機密情報が含まれているため、暗号化されたファイルを取得するにはbashスクリプトが必要です。

スクリプトでGPGパスワードの入力を求められ、それを実行して暗号化されたファイルをインポートするようにしたいと思います。しかし、どうすればいいのかわかりません。暗号化されたファイルと一緒にサーバーにキーを保存したくないため、パスワードを入力するユーザーが必要です。

いくつかの異なる方法を見ながら、ファイルを復号化し、暗号化されていないファイルをインポートしてから削除したくありません。スクリプトで問題が発生した場合は、暗号化されていないファイルを残す可能性を減らしたいと思います。

このようにファイルのGPG出力を取得する方法はありますか?おそらくSTDOUTを収集して解析できます(GPGがこの方法でコンテンツを出力できる場合)。

また、シェルスクリプトが使用できるファイルを暗号化する別の方法がある場合、私はそれを知りませんが、他の可能性が開いています。

ベストアンサー1

以下を使用してこれを実行できます。プロセスの交換

. <(gpg -qd "$encrypted_filename")

例は次のとおりです。

% cat > to-source <<< 'echo "Hello"'
% . ./to-source                     
Hello
% gpg -e -r [email protected] to-source
% . <(gpg -qd to-source.gpg)
Hello

gpg -dファイルをディスクに保存せずに標準出力に出力します。<()使う先入選出、実際のファイルデータはディスクに書き込まれません。

bashでは、.andsourceは同義語ですが、.移植性が高いため(POSIXの一部です)、ここではこれを使用しました。しかし、これは<()移植性が悪いです。私が知っている限り、bash、zsh、ksh88、ksh93でのみサポートされています。 pdkshとmkshの場合共同プロセス同じ効果を持つことができます。

おすすめ記事