Linux Expect - automount LUKS oddílů (automatické vyplnění hesel)
Dobrý den,
mám skript na odemknutí dvou oddílů zašifrovaných pomocí LUKS. Ten volám pří každém spuštění Ubuntu a obtěžuje mě pořád vyplňovat dlouhá hesla. Když už je jednou vyplňuji při bootu, tak se nebráním mít je v čitelné podobě na již zašifrovaném Ubuntu. Lze to zautomatizovat, aby se tam hesla doplnila sama? Četl jsem něco o Expect, přes který by to mohlo jít, ale nedaří se mi to rozchodit. Můj skript na mount LUKS oddílů vypadá překvapivě takto:
Dobrý den,
pokud neřešíte bezpečnost takového řešení, tak by to automatizovaně pomocí Expect šlo udělat jako níže (další možností je odemčení pomocí keyfile).
Ten Váš skript tedy očekává vyplnění hesla pro sudo, dále hesla pro cryptsetup luksOpen /dev/md0 a ještě hesla pro cryptsetup luksOpen /dev/sdc1. Except skript níže bude sám (automatizovaně) a ochotně vše vyplňovat vše za Vás...
PS: Instalace expect
mám skript na odemknutí dvou oddílů zašifrovaných pomocí LUKS. Ten volám pří každém spuštění Ubuntu a obtěžuje mě pořád vyplňovat dlouhá hesla. Když už je jednou vyplňuji při bootu, tak se nebráním mít je v čitelné podobě na již zašifrovaném Ubuntu. Lze to zautomatizovat, aby se tam hesla doplnila sama? Četl jsem něco o Expect, přes který by to mohlo jít, ale nedaří se mi to rozchodit. Můj skript na mount LUKS oddílů vypadá překvapivě takto:
cat /home/user/Documents/scripts/start.sh
#!/bin/bash
sudo cryptsetup luksOpen /dev/md0 raid1
sudo mount /dev/mapper/raid1 /home/user/Desktop/raid1
sudo cryptsetup luksOpen /dev/sdc1 backups
sudo mount /dev/mapper/backups /mnt/backups
ODPOVĚĎ
Dobrý den,
pokud neřešíte bezpečnost takového řešení, tak by to automatizovaně pomocí Expect šlo udělat jako níže (další možností je odemčení pomocí keyfile).
Ten Váš skript tedy očekává vyplnění hesla pro sudo, dále hesla pro cryptsetup luksOpen /dev/md0 a ještě hesla pro cryptsetup luksOpen /dev/sdc1. Except skript níže bude sám (automatizovaně) a ochotně vše vyplňovat vše za Vás...
vim /home/user/Documents/scripts/startbot.exp
#!/usr/bin/expect -f
set timeout -1
spawn /home/user/Documents/scripts/start.sh
expect "sudo"
send -- "password\r"
expect "Enter passphrase for /dev/md0: "
send -- "password\r"
expect "Enter passphrase for /dev/sdc1: "
send -- "password\r"
expect eof
PS: Instalace expect
sudo apt install expect