Product SiteDocumentation Site

80.4.2. Привязка тома LUKS к TPM 2.0

Привязка LUKS-раздела к TPM 2.0 без PIN (автоматическая разблокировка при старте):
  1. Привязать LUKS2 к TPM2 (по умолчанию sha256, без указания PCR):
    # systemd-cryptenroll --tpm2-device=auto /dev/sdb1
    Please enter current passphrase for disk /dev/sdb1: ••••••••
    New TPM2 token enrolled as key slot 1.
    
    Или, указав PCR, которые будут использоваться для привязки ключа к состоянию BIOS/загрузчика:
    # systemd-cryptenroll /dev/sdb1 --tpm2-device=auto --tpm2-pcrs=0,2,4,7
    Please enter current passphrase for disk /dev/sdb1: ••••••••
    New TPM2 token enrolled as key slot 1.
    

    Примечание

    Наиболее распространённый набор PCR (0, 2, 4, 7) — проверяет и прошивку, и загрузчик, и Secure Boot.
  2. Проверить, что ключ TPM добавлен:
    # cryptsetup luksDump /dev/sdb1 | grep -i keyslot
    Keyslots area: 	16744448 [bytes]
    Keyslots:
    	Keyslot:    1
    
  3. Получить UUID зашифрованного диска:
    # cryptsetup luksUUID /dev/sdb1
    cec42bd7-861f-4993-92c6-42be634af1a5
    
  4. Добавить запись в /etc/crypttab, указав UUID диска:
    sdb1_encrypted UUID=cec42bd7-861f-4993-92c6-42be634af1a5 none luks,discard
    
После выполнения этих настроек диск должен автоматически разблокироваться при старте, если TPM доступен.
Привязка LUKS-раздела к TPM 2.0 с PIN (добавляет второй фактор аутентификации):
  1. Привязать LUKS2 к TPM2 (по умолчанию sha256, PCR не указываем):
    # systemd-cryptenroll /dev/sdb1 \
      --tpm2-device=auto \
      --tpm2-pcrs=0+2+4+7 \
      --tpm2-with-pin=yes
    
    🔐 Please enter current passphrase for disk /dev/sdb1: ••••••••
    🔐 Please enter TPM2 PIN: ••••••••
    🔐 Please enter TPM2 PIN (repeat): ••••••••
    New TPM2 token enrolled as key slot 1.
    
  2. Проверить, что ключ TPM добавлен:
    # cryptsetup luksDump /dev/sdb1 | grep -i keyslot
    Keyslots area: 	16744448 [bytes]
    Keyslots:
    	Keyslot:    1
    
  3. Получить UUID зашифрованного диска:
    # cryptsetup luksUUID /dev/sdb1
    cec42bd7-861f-4993-92c6-42be634af1a5
    
  4. Добавить запись в /etc/crypttab, указав UUID диска:
    sdb1_encrypted UUID=cec42bd7-861f-4993-92c6-42be634af1a5 none luks,discard
    
При старте системы будет запрашиваться PIN, а TPM автоматически даст ключ только если PIN введён правильно.