関連する質問は次のとおりです。luksOpen は --key-file 引数が指定されない限り、復号化にキーファイルを使用しません。
しかし、Ubuntu bionicでは、cryptsetup 2.0.2
次の問題が発生します。
ファイルに含まれるパスワードを使用してLuks暗号化デバイスを開くとき良い結果直接電話:
cat mypass.txt | sudo cryptsetup open --type luks /dev/sda1 enc-store
--key-file=-
文書化された引数を試してください。同じ動作が発生するはずです。
cat mypass.txt | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store
遅延メッセージのみを生成します。
このパスワードに使用できるキーはありません。
これは、上記のメッセージを3回生成するcryptdisks_start enc-store
このオプションを使用するスクリプトを使用しようとすると特に問題です。--key-file=-
これは人生をあまり楽しくしません。
ここで何か抜けましたか?
-ありがとうございます!
答え1
で説明されているように、これら2つのコマンドの間に違いがあります。man cryptsetup
:
--key-file, -d name
ファイルからパスワードを読み込みます。指定された名前が「-」の場合、標準入力からパスワードを読み込みます。この場合、読み込みは改行文字で停止しません。
echo
つまり、makefileを使用またはコピー/貼り付けすると、末尾vi
に改行文字が含まれる可能性が高くなります。通常の標準入力(オプションなし)として使用すると--key-file
最後の改行は無視されますが、引数として使用されている場合は同じ標準入力--key-file
()でも--key-file=-
パスワードにこの改行が含まれます。新しいパスワードになることは無効です。
これを確認するには:
cat mypass.txt | tr -d '\r\n' | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store
期待どおりに機能する必要があります(CRも削除する場合に備えて)。
これが原因である場合は、次の改行を削除してください。
mv -i mypass.txt mypass.old && tr -d '\r\n' < mypass.old > mypass.txt
とにかく、おそらくあなたがしなければならないことは、純粋に乱数で新しいパスワードを生成し、それを安全なファイルに入れてから別のLUKSスロットに含めることです。