LUKS - изменить keyFile с помощью cryptsetup
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
: новый размер файла ключа
Я знаю, что есть другой способ изменить фразу-пароль, используя luksAddKey (новый ключ) и затем luksRemoveKey (предыдущий). Но я прошу специально для luksChangeKey.
1 ответ
Не знаю, почему @studiohack отклонил / удалил мой ответ (и я не знаю, как отправить прямые сообщения здесь, и мне не платит usersuper.ru, поэтому мое время здесь ограничено).
Но ОТВЕТ был / прав - только с уведомлением о том, что он НЕ МОЖЕТ РАБОТАТЬ для реальной версии cryptsetup 1.7.3:
И это независимо, если я использую команду luksAddKey ИЛИ luksChangeKey - параметры РАБОТАЮТ ЖЕ ПУТЬ:
Он работал нормально, например, в этом примере с Debian Jessie, использующим cryptsetup 1.6.6 (больше не знал ссылку, которую я нашел в прошлом году):
echo -n "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | \
cryptsetup luksAddKey --key-file - --keyfile-offset 0 --keyfile-size 32 \
--new-keyfile-offset 32 --key-slot 0 /dev/sda2
- ключевой файл: - (STDIN)
- используя ключ: ггггггггггггггггггггггггггггггггггг (32 байта от смещения до 0)
- ключ добавления: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (размер 32 байта от смещения байта 32)
Но, похоже, он больше не работает с Debian Stretch с использованием cryptsetup 1.7.3 (а остальная информация была НЕ ВОПРОСОМ, а утверждением о реальном поведении).
Ответ на ваш вопрос, просто внимательно прочитайте:
Существует 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>
^^^^^^^^^^^^