비밀번호와 키 파일로 보호되는 luks 암호화 파티션이 있습니다. 키 파일은 매일 접속하기 위한 것이며 비밀번호는 비상용으로 봉인된 봉투에 들어 있습니다. 5월이 지나고 실수로 키 파일을 파쇄해서 봉투에 있는 비밀번호를 이용해 복구했습니다. 이제 두 개의 활성 키 슬롯이 있는데 어느 슬롯에 쓸모 없는 키 파일 비밀번호가 포함되어 있고 어느 슬롯에 비상 비밀번호가 포함되어 있는지 모르겠습니다. 분명히 잘못된 것을 삭제하면 드라이브의 모든 데이터가 손실됩니다.
#cryptsetup luksDump /dev/sda2
LUKS header information for /dev/sda2
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha256
Payload offset: 4096
MK bits: 256
MK digest: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
MK salt: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
MK iterations: 371000
UUID: 28c39f66-dcc3-4488-bd54-11ba239f7e68
Key Slot 0: ENABLED
Iterations: 2968115
Salt: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
Key material offset: 8
AF stripes: 4000
Key Slot 1: ENABLED
Iterations: 2968115
Salt: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
Key material offset: 264
AF stripes: 4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
답변1
발견한 대로 를 cryptsetup luksDump
사용하여 어떤 키 슬롯에 키가 있는지 확인할 수 있습니다.
다음 명령을 사용하여 특정 슬롯의 비밀번호를 확인할 수 있습니다.
cryptsetup luksOpen --test-passphrase --key-slot 0 /dev/sda2 && echo correct
이 작업은 키 슬롯 0에 올바른 비밀번호를 입력하면 성공하고, 그렇지 않으면 실패합니다(다른 키 슬롯 중 하나에 비밀번호가 올바른 경우 포함).
비밀번호 중 하나를 잊어버린 경우 제거를 통해서만 해당 비밀번호의 위치를 알 수 있는 반면, 비밀번호 중 두 개를 잊어버린 경우 어느 것이 무엇인지 알 수 없습니다(그렇지 않으면 비밀번호 해시가 손상됩니다).
잊어버린 비밀번호를 제거하려면 Safe를 실행 cryptsetup luksKillSlot /dev/sda2 0
하고 기억하는 비밀번호를 입력하세요. 키 슬롯을 초기화하려면 cryptsetup
적어도 배치 모드로 실행되지 않는 경우(예: 없음 --batch-mode
또는 --key-file=-
동등한 옵션) 다른 키 슬롯의 비밀번호가 필요합니다.
답변2
(지금은?) 더 쉬운 방법은 옵션을 --verbose
지정하지 않고 options 와 함께 명령을 사용하는 것입니다 --key-slot
.
# cryptsetup --verbose open --test-passphrase /dev/sda2
Enter passphrase for /dev/sda2:
Key slot 4 unlocked.
올바른 슬롯을 찾기 위해 반복할 필요 없이 자동으로 올바른 슬롯을 확인합니다. :)