1

Кому-нибудь удалось заставить cryptsetup открыть том LUKS с помощью ключевой фразы, хранящейся в связке ключей ядра? Согласно этой статье (см. Внизу) это должно быть возможно.

У меня есть пароль загружен в связку ключей для root с разрешениями на чтение:

# keyctl list @u
1 key in keyring:
 57767030: --alswrv     0     0 user: nixos_data:passphrase
# keyctl describe 57767030
 57767030: alswrvalswrv------------     0     0 user: nixos_data:passphrase

Если я открою зашифрованный том, явно указав содержимое этого ключа, том успешно разблокируется:

# keyctl pipe 57767030 | cryptsetup open /safe.img nixos_data_decrypted --key-file -

Из связанной статьи я понял, что для cryptsetup считывания ключа непосредственно из набора ключей я должен добавить токен на устройство luks следующим образом:

# cryptsetup token add --key-description nixos_data:passphrase /safe.img

После чего я смогу открыть устройство без явного указания пароля:

# cryptsetup open --token-only /safe.img nixos_data_decrypted

Однако выполнение этого с параметром --debug дает следующий вывод:

# Activating volume nixos_data_decrypted using token -1.
# Validating keyring token json
# keyring_get_passphrase failed (error -126)
# Token 0 (luks2-keyring) open failed with -22.
# Releasing crypt device /safe.img context.
# Releasing device-mapper backend.
# Unlocking memory.
Command failed with code -1 (wrong or missing parameters).

Полный вывод можно найти здесь.

Редактировать: Пропуск опции --token-only не меняет этого, в этом случае cryptsetup запрашивает существующую фразу-пароль и, таким образом, по-прежнему не использует фразу-пароль, хранящуюся в кольце ключей ядра.

0