復号化されたファイルをディスクに書き込むのではなく、他のコマンドで使用するためにファイルを復号化するにはどうすればよいですか?

復号化されたファイルをディスクに書き込むのではなく、他のコマンドで使用するためにファイルを復号化するにはどうすればよいですか?

ansible-vault decryptファイルを復号化して記録するコマンド()があります。ファイルまたは-/に書き込むことができますstdout

次に、この復号化されたファイル(秘密鍵)をmycommand --key-file <path to file>

現在のスクリプトが実行されたら、ansible-vault decrypt --output mykey.key復号化されたファイルをディスクに書き込み、 を使用してmycommand --key-file mykey.key最後にrm mykey.key

復号化されたファイルをディスクに書き込むことなくファイルのmycommandようにアクセスする方法はありますか?

標準入力からキーをまったく読み取らないため、2番目のコマンドにパイプすることはできません。私が考えることができる唯一のことは、コマンドを実行する前に仮想ディスクを作成し、そこにキーを書き、すべてのコマンドが実行された後に仮想ディスクをアンマウントすることです。これにより、解読された鍵が痕跡なしで消えることになります。

ベストアンサー1

コマンドにファイル名が必要ですが、ファイル形式に興味がない場合は、データをパイプして/dev/stdinファイル名として指定できます。/dev/stdin標準入力を参照してください。

ansible-vault decrypt | mycommand --key-file /dev/stdin

mycommandパイプが許可されていない場合は機能しません(通常はプログラムがファイルを検索できるように要求した場合に発生します)。この場合、一時ファイルにキーを書き込む必要があります。

ほとんどのLinuxシステム(および他の多くのUnixバリアント)には、デフォルトでメモリ内ファイルシステムがあります。このファイルシステムがマウントされる場所とそれを使用するために必要な権限は、展開によって異なります。最新のLinuxシステムでは一時ファイルシステムファイルシステムは、次のような複数の場所にマウントされます。/run。通常、すべてのユーザーは/run/user/1234ログイン時にディレクトリを取得します。ここで、1234はユーザーIDです。多くのサービスは以下に独自のディレクトリを作成し、多くの場合/run/var/runのシンボリックリンクです/run。システムで利用可能な項目を確認するために使用されますdf -t tmpfs

一時ファイルシステムに書き込まれたデータは、スワップ領域にあります。記憶の内容も同じだ。ハードドライブの盗難の脅威から保護するには、スワップ領域を暗号化する必要があります。休止状態モードを使用していない場合は、起動するたびに作成され、どこにも保存されない交換暗号化に任意のキーを使用できます。

おすすめ記事