Настраиваем разблокировку через ssh зашифрованных luks разделов при загрузке системы.
Важно подметить что /boot
раздел должен быть отдельной точкой монтирования и без шифрования как и /boot/efi
- Устанавливаем dracut-sshd
1 | sudo zypper in dracut-sshd |
- Создаем конфиг для активации модуля network
1 | sudoedit /etc/dracut.conf.d/90-network.conf |
с содержимым
1 | add_dracutmodules+=" network " |
- Далее нужно добавить в
GRUB_CMDLINE_LINUX
параметры для сети
1 | rd.neednet=1 ip=dhcp |
или указать конкретный адрес и маску, например
1 | rd.neednet=1 ip=192.168.1.10:255.255.255.0 |
- Теперь нужно пересобрать образ ядра
1 | sudo dracut -f -v |
- Копируете свой ssh ключ для
root
с удаленной машины откуда будем подключаться. Подразумевается что он у вас уже есть.
1 | ssh-copy-id -i ~/.ssh/id-rsa root@192.168.1.10 |
P.S. Согласно документации dracut-ssh ищет ключи в указанных файлах
1 | /root/.ssh/dracut_authorized_keys |
- После этого можно перезагружаться, разблокировка по ssh должна работать.
Процесс разблокировки
- Подключаемся по ssh
1 | ssh root@192.168.1.10 |
- Вы должны увидеть нечто подобное
1 | Welcome to the early boot SSH environment. You may type |
- Из приветствия видно, что бы разблокировать нужно ввести
1 | systemd-tty-ask-password-agent |
После чего вас попросят ввести парольные фразы от ключей шифрования.
1 | Please enter passphrase for disk cr_root: |
Если у вас один ключ для шифрования всех разделов, то ввести будет достаточно всего один раз, утилита сначала попробует разблокировать все разделы первым ключом, если ключ будет другой то попросит парольную фразу от второго ключа.
- После разблокировки ssh сессия автоматически завершится а на удаленном ПК продолжится загрузка ОС.