Raspberry-Pi
LUKS用密鑰文件自動解密失敗,請幫我調試
我有一個 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 卷可以正常工作。請幫我調試這個問題。
您需要在 中指定密鑰文件
/etc/crypttab
,如果放在none
那裡,它將被解釋為“詢問密碼”。來自
man crypttab
:第三個欄位指定加密密碼。如果該欄位不存在或密碼設置為“無”或“-”,則必須在系統引導期間手動輸入密碼。否則,該欄位將被解釋為包含加密密碼的文件的絕對路徑。
請注意,
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 列印它)。