Linux

只有第一個插槽密碼在啟動設備解密時有效,其他所有在測試打開設備時有效

  • April 7, 2021

我根據這篇文章對 Ubuntu 20.04 LTS 進行了完整的加密設置。由於強烈建議添加更多密碼以避免由於初始密碼不可用而失去所有數據,我這樣做是通過使用cryptsetup luksAddKey /dev/sda1命令添加幾個密碼來完成的。為了完全確定,我做得很好,我通過執行檢查了每個密碼的有效性,cryptsetup luksOpen --test-passphrase /dev/sda1所有密碼都成功通過了測試。

問題是,在啟動並嘗試解鎖主密鑰 (GPT) 時,我只能使用第一個輸入的密碼。其他的不工作,但如果在系統載入後使用cryptsetup luksOpen --test-passphrase /dev/sda1.

是否有任何關於此的已知問題以前曾聽說過,或者可能有一些事情是我們的範圍內的?

更新:

  1. /etc/crypttab除了 HOWTO 文章中提到的那些之外,我的文件中沒有任何字元串。他們來了:
LUKS_BOOT UUID=<UUID-VALUE> /etc/luks/boot_os.keyfile luks,discard
sda5_crypt UUID=<UUID-VALUE> /etc/luks/boot_os.keyfile luks,discard
  1. 根據 systemd crypttab manual,如果未key-slot使用任何選項,則:

預設是按順序嘗試所有關鍵槽。

但由於某種原因,這不起作用。

似乎實際上所有密碼都可以正常工作。但關鍵是第一個(初始)密碼片語的響應時間(大約 5-7 秒)明顯低於列表中其餘密碼片語的響應時間。這裡最有趣的是,對於從第二個密碼開始的所有密碼,響應時間——從輸入密碼後按下Enter按鈕到系統實際啟動的時間——大約是 25-35 (!) 秒。這種行為的根本原因尚不清楚。主要原因,為什麼會出現最初的問題,我沒有等待系統啟動這麼長時間,並錯誤地認為密碼根本不起作用。

引用自:https://unix.stackexchange.com/questions/643642