Luks
LUKS:確定哪些鍵槽與哪個密碼片語匹配
我有一個 LUKS 加密磁碟。它有 3 個鍵槽,我知道其中兩個的通過階段。
如何確定我知道哪些密鑰槽的密碼?
簡單的方法是
--debug
在解鎖設備時使用它,它會列印它嘗試使用的鍵槽,因此對於兩個密碼片語,您只需執行兩次luksOpen
即可查看哪個密碼片語“屬於”哪個鍵槽。我為第三個鍵槽提供密碼的範例:
$ sudo cryptsetup open /dev/sde a --debug ... # Trying to open LUKS2 keyslot 0. ... # Verifying key from keyslot 0, digest 0. # Digest 0 (pbkdf2) verify failed with -1. # Trying to open LUKS2 keyslot 1. ... # Digest 0 (pbkdf2) verify failed with -1. # Trying to open LUKS2 keyslot 2. ... Key slot 2 unlocked.
如果您想從腳本中檢查,您可以使用
--key-slot <num>
withluksOpen
並為您知道的每個密碼片語的每個鍵槽循環,使用錯誤的密碼片語解鎖錯誤的鍵槽將簡單地失敗(您也可以使用它--test-passphrase
來檢查密碼片語是否正確或沒有實際解鎖設備)。如果您有兩個具有相同密碼的鍵槽,這也會有所幫助,--debug
上面的範例不會告訴您這一點。所以類似的東西應該可以解決問題:
for i in {0..2}; do for pass in "a" "b" "c"; do echo $pass | cryptsetup open /dev/sde a -q --test-passphrase --key-slot $i >/dev/null 2>&1 ret=$? [ $ret -eq 0 ] && echo "$pass is passphrase for keyslot $i" && break done done
a is passphrase for keyslot 0 b is passphrase for keyslot 1 c is passphrase for keyslot 2