cryptsetup
该实用程序提供了使用以下选项更改现有密码的选项luksChangeKey
选项。这需要较旧的密钥文件和手册页上建议的其他参数。
luksChangeKey <device> [<new key file>] Changes an existing passphrase. The passphrase to be changed must be supplied interactively or via --key-file. The new passphrase can be supplied interactively or in a file given as positional argu‐ ment. If a key-slot is specified (via --key-slot), the passphrase for that key-slot must be given and the new passphrase will overwrite the specified key-slot. If no key-slot is specified and there is still a free key-slot, then the new passphrase will be put into a free key-slot before the key-slot con‐ taining the old passphrase is purged. If there is no free key-slot, then the key-slot with the old passphrase is overwritten directly. WARNING: If a key-slot is overwritten, a media failure during this operation can cause the overwrite to fail after the old passphrase has been wiped and make the LUKS container inaccessible. <options> can be [--key-file, --keyfile-offset, --keyfile-size, --new-keyfile-offset, --new-key‐ file-size, --key-slot, --force-password, --header].
当我运行它时,它会提示密码.但我需要使用另一个密钥文件。
提供新密钥文件的选项在哪里?从手册页中,我可以理解,
--keyfile
:较旧的密钥文件--keyfile-offset
:较旧的密钥文件偏移量--keyfile-size
:较旧的密钥文件偏移量--new-keyfile-offset
:新密钥文件偏移量--new-key‐file-size
:新密钥文件大小
我知道还有另一种方法可以更改密码,即使用卢克斯添加密钥(新密钥)然后luksRemoveKey(上一个)。但我特别要求luksChangeKey。
答案1
不知道为什么@studiohack 投票反对/删除了我的答案(并且不知道如何在这里发送直接通信,并且我没有从superuser.com 获得报酬,所以我在这里的时间有限)。
但是答案是正确的 - 仅通知它可能不适用于实际版本 cryptsetup 1.7.3:
如果我使用 luksAddKey 或 luksChangeKey 命令,它是独立的 - 参数的工作方式相同:
例如,使用 cryptsetup 1.6.6 的 Debian Jessie 这个例子运行良好(不再知道我去年找到的参考资料了):
echo -n "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | \
cryptsetup luksAddKey --key-file - --keyfile-offset 0 --keyfile-size 32 \
--new-keyfile-offset 32 --key-slot 0 /dev/sda2
- 密钥文件:-(STDIN)
- 使用密钥:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy(从字节偏移量 0 开始的 32 字节大小)
- 添加密钥:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx(从字节偏移量 32 开始,大小为 32 字节)
但它似乎不再适用于使用 cryptsetup 1.7.3 的 Debian Stretch(其余信息不是问题而是实际行为的陈述)。
答案2
答案就在你的问题里,只要仔细阅读:
有 5 个命名参数(3 个用于旧密钥文件,2 个用于新密钥文件),加上一个缺失的未命名范围:
luksChangeKey <device> [<new key file>]
因此您的命令(如果您使用所有选项)将如下所示:
luksChangeKey <device> --keyfile <oldkeyfile> --keyfile-offset <oldoffset> --keyfile-size <oldsize> --new-keyfile-offset <newoffset> --new-key‐file-size <newsize> <newkeyfile>
^^^^^^^^^^^^
更可能的缩写形式是:
luksChangeKey <device> --keyfile <oldkeyfile> <newkeyfile>
^^^^^^^^^^^^