Я пытаюсь автоматически монтировать диск при запуске системы. Я использую crypttab и пароль есть в файле в открытом виде.
Моя конфигурация:
sda3_crypt UUID=my_id none luks,discard
wd_01 UUID=my_id /luks-keys/wd1 luks,timeout=180
wd-crypt UUID=my_id /luks-keys/wd1
sda3_crypt --> основная система
wd_01 --> диск, который я хочу смонтировать
wd-crypt --> раздел luks, который я хочу смонтировать
И после запуска системы и установки основного пароля загрузите систему, но не шифруйте wd_01.
Когда я добавляю точку монтирования в fstab, это меняется. При загрузке я ввожу свой основной пароль, система начинает загружаться и после этого запрашивает второй пароль для wd_01 и игнорирует тот факт, что я ввел его пароль для /root/luks-keys/wd1 в crypttab :/
lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 954M 0 part /boot
└─sda3 8:3 0 110.4G 0 part
└─sda3_crypt 253:0 0 110.4G 0 crypt
├─main-swap 253:1 0 7.5G 0 lvm [SWAP]
└─main-system 253:2 0 102.9G 0 lvm /
sdb 8:16 0 1.8T 0 disk
└─sdb-crypt 253:4 0 1.8T 0 crypt /srv/dev-disk-by-label-wd01
sdc 8:32 0 1.8T 0 disk
└─seagate_01 253:3 0 1.8T 0 crypt /srv/dev-disk-by-label-seagate01
wd_01 — это мой sdb, а wd-crypt — это мой sdb-crypt
решение1
Сначала примечание по безопасности: вам нужно защитить файл, содержащий пароль или ключ LUKS. Это, вероятно, означает использование зашифрованного раздела для корневого раздела ОС. Если вы не защитите этот файл, шифрование вам не поможет.
Ниже замените /dev/device-and-part
на ваш раздел (IE sda3
).
Рассмотрите возможность резервного копирования ваших данных или любых файлов, измененных в инструкциях. Если вы допустите ошибку, вы можете потерять данные или сделать свою систему неработоспособной.
Создайте новый ключ LUKS
Создайте ключ из случайных данных, убедитесь, что доступ есть только у пользователя root:
sudo mkdir /etc/luks-keys/
sudo dd if=/dev/urandom of=/etc/luks-keys/name-of-key bs=512 count=8 iflag=fullblock
sudo chown root.root /etc/luks-keys/name-of-key
sudo chmod 400 /etc/luks-keys/name-of-key
Теперь свяжите ключ с разделом, вам нужно будет ввести существующий пароль в командной строке:
sudo cryptsetup -v luksAddKey /dev/device-and-part /etc/luks-keys/name-of-key
Убедитесь, что все сработало, протестировав файл ключа:
sudo cryptsetup open -v --test-passphrase /dev/device-and-part --key-file /etc/luks-keys/name-of-key
Теперь вы можете разблокировать зашифрованный раздел с помощью пароля файла ключа.
Разблокировать и смонтировать
Выясните UUID для вашего раздела. Этот уникальный идентификатор используется для идентификации раздела во время загрузки.
sudo cryptsetup luksDump /dev/device-and-part | grep "UUID"
Используйте это значение, где я пишу UUID_HERE. Выберите имя для вашего смонтированного тома, например, sda3_crypt
для sda3
. Я буду использовать name_crypt
в инструкциях.
echo "name_crypt UUID=UUID_HERE /etc/luks-keys/name-of-key luks" | sudo tee -a /etc/crypttab
Проверьте свою конфигурацию с помощью:
sudo cryptdisks_start name_crypt
Добавьте в fstab для автомонтирования:
echo "/dev/mapper/name_crypt /media/path/to/mount ext4 defaults 0 2" | sudo tee -a /etc/fstab
Примечания
Стоит понимать каждую из этих команд, чтобы вы могли отлаживать любые обнаруженные проблемы. man dd
man cryptsetup
man fstab
может помочь вам здесь. Я выполнил эти инструкции на Debian 11, тот же или похожий подход должен работать на более старых/новых выпусках Debian, Ubuntu или подобных ОС.
решение2
Хорошо, я нашел ответ: мне нужно добавить sudo cryptsetup -v luksAddKey
отвечать:https://blog.tinned-software.net/automount-a-luks-encrypted-volume-on-system-start/