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>
                                              ^^^^^^^^^^^^
Другие вопросы по тегам