別々のヘッダーを使用していますcryptsetup
。これを行うには、--header
パラメータを使用してヘッダーファイルを指定します。以下を使用してデバイスを開くことができます。
cryptsetup luksOpen /dev/sdb1 sdb1 --header LUKS-HEADER
ただし、ヘッダーをファイル以外のコマンドの出力として提供する必要があります(cat
ここでは説明のためにコマンドを使用します)。
cryptsetup luksOpen /dev/sdb1 sdb1 --header <(cat LUKS-HEADER)
しかし、これはうまくいきません。次のエラーが発生します。
Attaching loopback device failed (loop device with autoclear flag is required).
キーを提供するために同様のアプローチが機能するので、これは混乱します。
cryptsetup luksOpen /dev/sdb1 sdb1 --header LUKS-HEADER --key-file <(printf asdf)
上記のコマンドは正しく動作します(例パスワードとして「asdf」を使用しました)。
--header
パイプ/他のプロセスのオプションに引数を提供する方法は?
賞金の更新:
許可された答えはうまくいきます。つまり、次のものを使用できます。
cat LUKS-HEADER > /dev/ram0
cryptsetup luksDump /dev/ram0
ただし、プロセス置換を使用する方法の解決策が必要です。現在、プロセス置換は機能しません。
cryptsetup luksDump <(cat LUKS-HEADER)
エラーが発生します。
Attaching loopback device failed (loop device with autoclear flag is required).
ベストアンサー1
cryptsetupでは、LUKSヘッダーは通常のファイルまたはデバイスである必要があるようです。プロセス/ストリームの出力としてLUKSヘッダーを提供する必要がある場合は、次のように送信します。/dev/ram
cat LUKS-HEADER > /dev/ram0
(カーネルがRAMディスクをサポートしている場合)
その後、単にcryptsetupコマンドを使用できます。
cryptsetup luksOpen /dev/sdb1 sdb1 --header /dev/ram0
LUKSヘッダーは、空き/dev/ram0
容量が確保されるまでディスクに残っていることを覚えておいてください。メモリを解放するには、次のblockdev
コマンドを使用できます。
blockdev -v --flushbufs /dev/ram0