UUID в / etc / crypttab
должен быть UUID устройства, на котором находится контейнер крипты, а не UUID контейнера. Или, другими словами, если у вас есть / dev / sda1
с / dev / mapper / sda1_crypt
поверх него, файл / etc / crypttab
должен содержать имя устройства отображения, sda1_crypt
с UUID / dev / sda1
, а не UUID / dev / mapper / sda1_crypt
.
Запись / etc / crypttab
должна выглядеть следующим образом (все четыре поля обязательны):
mappedname UUID=12345678-9abc-def012345-6789abcdef01 none luks
Вы можете получить UUID с помощью команды blkid
.
После этого update-initramfs -u -k all
.
Проблема: вы явно не знаете, как написать безопасный сценарий оболочки. Ваш код явно не работает из-за отсутствия двойных кавычек , что является ошибкой безопасности, а не просто функциональной ошибкой .
Если вы действительно хотите, чтобы это было безопасно, не пишите свои собственные. Как инженер по безопасности, я бы категорически отверг ваше самодельное решение, поскольку уже существующие решения существуют.Я бы сделал это, даже если на первый взгляд он не выглядел сломанным. Используйте такой инструмент, как rssh или scponly. Их установка требует меньше усилий, чем написание собственного сценария, и, скорее всего, будет безопасной.