LUKSはキーファイルを使用して自動的に復号化できませんでした。デバッグするのに役立ちます。

LUKSはキーファイルを使用して自動的に復号化できませんでした。デバッグするのに役立ちます。

Oricoケース内のHDDドライブにUSB経由でRaspberry Piが接続されており、別々の電源があります。次のコマンドを使用してドライブを暗号化しました。

cryptsetup luksFormat /dev/sda

次に、次のコマンドを使用してキーファイルを作成しました。

dd if=/dev/random bs=32 count=1 of=/home/ubuntu/luks/luks.key

次のコマンドを使用して、このファイルを2番目のキーとして追加します。

cryptsetup luksAddKey /dev/sda /home/ubuntu/luks/luks.key

次の行を次に追加します/etc/crypttab

vault /dev/sda none

システムの起動中にドライブのパスワードが自動的に復号化されるようにするすべての措置を講じたと思いましたが、そのようなことは起こりませんでした。再起動するたびにこれを手動で実行する必要があります。私を悩ませるもう一つのことは出力ですcryptsetup luksDump /dev/sda。 2 つのスロットが「有効」になると予想されますが、出力には表示されません。

ubuntu@ubuntu:~$ sudo cryptsetup luksDump /dev/sda
sudo: unable to resolve host ubuntu: Temporary failure in name resolution
LUKS header information
Version:        2
Epoch:          4
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           ab24c6e5-9286-4e6d-a874-29755338afa1
Label:          (no label)
Subsystem:      (no subsystem)
Flags:          (no flags)

Data segments:
  0: crypt
    offset: 16777216 [bytes]
    length: (whole device)
    cipher: aes-xts-plain64
    sector: 512 [bytes]

Keyslots:
  0: luks2
    Key:        512 bits
    Priority:   normal
    Cipher:     aes-xts-plain64
    Cipher key: 512 bits
    PBKDF:      argon2i
    Time cost:  4
    Memory:     270573
    Threads:    4
    Salt:       b8 50 50 6c b2 54 45 ea 36 45 66 1d 61 d1 e9 94 
                87 7c 67 d3 a8 f3 3b 54 04 b6 46 7b 25 0d d2 89 
    AF stripes: 4000
    AF hash:    sha256
    Area offset:32768 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
  1: luks2
    Key:        512 bits
    Priority:   normal
    Cipher:     aes-xts-plain64
    Cipher key: 512 bits
    PBKDF:      argon2i
    Time cost:  4
    Memory:     268825
    Threads:    4
    Salt:       55 e6 be a8 55 45 61 3c 1b 6e 6d 7a b3 70 40 32 
                fc 4f 95 71 f0 13 52 c7 a1 69 cb 73 66 0b a9 6f 
    AF stripes: 4000
    AF hash:    sha256
    Area offset:290816 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
Tokens:
Digests:
  0: pbkdf2
    Hash:       sha256
    Iterations: 39527
    Salt:       62 9b 83 b6 04 f3 b0 aa 36 21 bc bf 28 aa 1d 3c 
                ad 89 8a 5c 0d 7a d2 f4 0f 6e d4 09 b2 33 0b d4 
    Digest:     45 42 fc 30 22 95 12 26 3f 78 8c 56 d7 b0 c3 d9 
                10 4e 32 99 93 3c 10 48 a3 df ab 89 77 89 14 1f 

この問題がUSBドライブで接続されたHDDに関連している可能性があると思いますか?前述のように、このLUKSボリュームを手動で開くと問題はありません。この問題をデバッグするのに役立ちます。

答え1

にキーファイルを指定する必要があります/etc/crypttab。ここに入れるとnone「パスワードリクエスト」と解釈されます。

からman crypttab

3番目のフィールドは暗号化パスワードを指定します。このフィールドが存在しない場合、またはパスワードが「none」または「-」に設定されている場合は、システム起動中にパスワードを手動で入力する必要があります。それ以外の場合、このフィールドは暗号化されたパスワードを含むファイルの絶対パスとして解釈されます。

これはluksAddKey、LUKSデバイスに新しいパスワードのないキースロットを追加したり、新しいパスワードで保護された新しいキースロットを追加したり、ファイルから読み取ったパスワードを追加したりするわけではありません。構文/home/ubuntu/luks/luks.key- これはキー/ dmではありません。 LUKSで使用されるcryptは、LUKSデバイスのロックを解除/開くために必要な「バイナリパスワード」にすぎません。

crypttabエントリを次のように変更します。

vault /dev/sda /home/ubuntu/luks/luks.key

これで問題が解決します。

出力はluksDump良好です。 LUKS バージョン 2 に変更され、ラインは印刷されなくなりますKey Slot X: ENABLED/DISABLED(LUKS 2 の場合は LUKS 1 に対して印刷を続けます)。

関連情報