确定密码在哪个 luks 插槽中

Huc*_*kle 29 luks

我有一个由密码和密钥文件保护的 luks 加密分区。密钥文件用于日常访问,密码在一个密封的信封中以备不时之需。五月过去了,我不小心粉碎了密钥文件,所以我使用信封中的密码恢复了。现在我想知道,我有两个活动的密钥槽,但我不知道哪个包含无用的密钥文件密码,哪个包含我的紧急密码。显然,如果我删除错误的,我将丢失驱动器上的所有数据。

#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
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 27

正如您所发现的,您可以使用cryptsetup luksDump查看哪些键槽有键。

您可以使用以下命令检查特定插槽的密码

cryptsetup luksOpen --test-passphrase --key-slot 0 /dev/sda2 && echo correct
Run Code Online (Sandbox Code Playgroud)

如果您为密钥槽 0 输入正确的密码,则此操作会成功,否则会失败(包括密码对于其他某个密钥槽是否正确)。

如果您忘记了其中一个密码,那么您只能通过消除来找到它所在的位置,如果您忘记了其中两个密码,则无法分辨哪个是哪个(否则密码哈希会被破坏)。

要删除您忘记的密码,您可以安全地运行cryptsetup luksKillSlot /dev/sda2 0并输入您记住的密码。要擦除一个密钥槽,cryptsetup需要不同密钥槽的密码,至少当它不是在批处理模式下运行时(即 no --batch-mode--key-file=-或等效选项)。


rat*_*noz 15

一种更简单的方法(现在?)是使用带有--verbose选项的命令但不指定选项--key-slot

# cryptsetup --verbose open --test-passphrase /dev/sda2
Enter passphrase for /dev/sda2: 
Key slot 4 unlocked.
Run Code Online (Sandbox Code Playgroud)

它会自动为您检查正确的插槽,而无需您循环查找好的插槽:)

  • 它没有显示我的情况下的所有插槽(仅显示第一个打开的插槽)。 (2认同)