我有一个 Raspberry Pi,通过 USB 连接了 Orico 机箱内的 HDD 驱动器,并具有单独的电源。我使用以下命令加密了该驱动器:
cryptsetup luksFormat /dev/sda
然后,我使用命令创建了密钥文件:
dd if=/dev/random bs=32 count=1 of=/home/ubuntu/luks/luks.key
使用命令添加此文件作为第二个密钥:
cryptsetup luksAddKey /dev/sda /home/ubuntu/luks/luks.key
并将这一行添加到/etc/crypttab
:
vault /dev/sda none
我认为我已尽一切努力使该驱动器在系统启动期间自动解密,但这并没有发生。每次重新启动后我都必须手动执行此操作。另一件让我困扰的是 的输出cryptsetup luksDump /dev/sda
。我希望有两个插槽处于“启用”状态,但我在输出中没有看到它:
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
您认为此问题可能与 HDD 作为 USB 驱动器连接有关吗?如前所述,手动打开此 LUKS 卷效果很好。请帮我调试这个问题。
答案1
您需要在 中指定密钥文件/etc/crypttab
,如果您放在none
那里,它将被解释为“询问密码”。
从man crypttab
:
第三个字段指定加密密码。如果该字段不存在或密码设置为“none”或“-”,则必须在系统引导期间手动输入密码。否则,该字段将被解释为包含加密密码的文件的绝对路径。
请注意,这luksAddKey
并不意味着您要向 LUKS 设备添加新的无密码密钥槽,您要添加一个用新密码保护的新密钥槽,或者在您的情况下是从文件中读取的密码短语/home/ubuntu/luks/luks.key
- 这不是 LUKS 使用的密钥/dm-crypt,它只是一个“二进制密码”,解锁/打开 LUKS 设备时仍然需要提供它。
将您的 crypttab 条目更改为
vault /dev/sda /home/ubuntu/luks/luks.key
应该可以解决问题。
输出luksDump
正常,它随着 LUKS 版本 2 的变化而变化,不再打印该Key Slot X: ENABLED/DISABLED
行(对于 LUKS 2,它仍然为 LUKS 1 打印它)。