...
Установка пакетов для работы со смарт-картами
$ sudo apt-get install pcscd opensc cryptsetup
Форматируем Рутокен ЭЦП 2.0
$ pkcs15-init --erase-card -p rutoken_ecp
Инициализируем Рутокен ЭЦП
$ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
$ pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" --finalizeСоздаем ключевую пару на Рутокен ЭЦП 2.0
$ pkcs15-init -G rsa/2048 --auth-id 02 -u decrypt --id 01
Создаем случайный файл и привязываем его в качестве ключевого к Luks
$ sudo touch /rootboot/rootkey
$ sudo chmod 600 /rootboot/rootkey
$ sudo dd if=/dev/random of=/rootboot/rootkey bs=1 count=245 #change to urandom if you can't wait
$ sudo cryptsetup luksAddKey /dev/sda2 /rootboot/rootkey
Экспортируем открытый ключ из Рутокен ЭЦП
$ pkcs15-tool --read-public-key 01 -o public_key_rsa2048.pem
- Шифруем ключевой файл с помощью открытого ключа
$ sudo openssl rsautl -encrypt -pubin -inkey public_key_rsa2048.pem -in /boot/rootkey -out /boot/rootkey.enc
rootInfo icon false title В версии openssl 3.0 и выше, необходимо использовать команду: sudo openssl pkeyutl -encrypt -pubin -inkey public_key_rsa2048.pem -in /
rootboot/rootkey -out /
boot/rootkey.enc
- Проверяем, что файл успешно может расшифроваться на ключе с Рутокен ЭЦП
$ sudo pkcs15-crypt --decipher --input /rootboot/rootkey.enc --pkcs1 --raw -k 01 --output /rootboot/rootkey.dec - Сравниваем файлы /rootboot/rootkey и /rootboot/rootkey.dec. Если они идентичны, то удаляем их и оставляем только зашифрованный файл
$ sudo rm /rootboot/rootkey
$ sudo rm /rootboot/rootkey.dec
Далее продолжить настройку по инструкции:
1) Выполнить пункты пункт 8. Зашифрованный ключ может лежать или в /boot, или в initramfs или в любом другом месте. Его местонахождение нужно описать в crypttab.
2) Затем шаг 13 (без патча decrypt_opensc). Убедиться, что в initramfs попал /root/luks-secret.key (посмотреть содержимое initramfs можно с помощью утилиты lsinitramfs)
...