Кому-нибудь удалось заставить 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 запрашивает существующую фразу-пароль и, таким образом, по-прежнему не использует фразу-пароль, хранящуюся в кольце ключей ядра.