Bij recente installatie van openSUSE (Leap/Tumbleweed) kan je voor versleutelde gegevens op de harde schijf kiezen, maar daarna heb je soms het vervelende gevolg dat je twee keer je wachtwoord moet ingeven: 1 keer voor grub (dat op een andere partitie zit) en 1 keer voor de hoofd-harde schijf op root / of de swap partitie. Vroeger heb ik dit ook al kunnen omzeilen (OpenSUSE 15.1 installatie met versleutelde gebruikersgegevens), maar hier een update..
De situatie:
– Start op (van boot partitie): grub vraagt wachtwoord.
– spreekt / partitie aan: vraagt wachtwoord.
Welcome to GRUB!
Enter passphrase for hd0,gpt2 (56c57….):
of bv:
Enter passphrase for hd0,gpt3 (6091….):
Na de vraag: komen er geen letters of ***, je kan ook geen pijltjes gebruiken, backspace lukt soms wel om iets te verbeteren …
Attempting to decrypt master key …
ps: Als je je wachtwoord verkeerd hebt intikt (keyboard staat bij start in qwerty) krijg je iets als:
GNU GRUB version 2.06 .. enz.
en moet je opnieuw afsluiten/opstarten.
Loading Linux ramdisk …
[?] Please enter passphrase for disk … (partition):
(press TAB for no echo)
************ (zijn zichtbaar)
Hier vraagt het systeem voor de tweede keer je passphrase, je toetsenbord is nu al ingesteld (bv op azerty). Deze willen we overslaan.
Een extra sleutel
Er moet een extra sleutel bijgemaakt worden, die ook de gegevens kan vrijmaken, en die gebruikt wordt door opstartprocedure van grub.
Die nieuwe sleutel heeft een random waarde en wordt enkel door het systeem gebruikt. We werken met sudo of als root:
su
fdisk -l
Hieruit leer ik dat /dev/sda3 mijn Linux filesystem is (check zelf).
Check en maak de key file, pas de rechten aan:
ls /.*.key
touch /.root.key
chmod 600 /.root.key
ls -lFA /.*.key
(eigenaar kan bestand lezen en schrijven, anderen hebben geen toegang)
Maak de sleutel en zet hem in het bestand:
dd if=/dev/urandom of=/.root.key bs=1024 count=1
Voeg de sleutel toe als manier om deze partitie te ontsleutelen:
cryptsetup luksAddKey /dev/sda3 /.root.key
cat /etc/crypttab
Vervang in de derde kolom none
door /.root.key
bv met
mcedit /etc/crypttab
Voeg een lijn toe aan de configuratie:
echo -e 'install_items+=" /.root.key "' | sudo tee --append /etc/dracut.conf.d/99-root-key.conf > /dev/null
Nota: als 99-root-key.conf niet bestaat mag je hem gewoon maken (touch) en ineens invullen met bv mcedit of zo..
Check:
cat /etc/dracut.conf.d/99-root-key.conf
install_items+=" /.root.key "
Pas aan, bv met mcedit:
mcedit /etc/permissions.local
/boot/ root:root 0700
Check met:
chkstat --system --set
(lege reaktie als alles ok is, anders een foutmelding, meestal over syntax in voorgaande, bv 700 ipv 0700)
en mkinitrd bestaat niet meer, dus dracut:
dracut -f --regenerate-all
wat een lange output als feedback geeft eindigend op:
dracut[I]: *** Creating image file ‘/boot/initrd-6.5.6-1-default’ ***
dracut[I]: *** Creating initramfs image file ‘/boot/initrd-6.5.6-1-default’ done ***
Swap
Soms treedt een vergelijkbaar euvel op bij het gebruiken van een versleutelde swap partitie. Na het opensuse logo krijg je terug een zwart scherm met :
Please enter passphrase for disk SK hynix PC401 HFS25 HFS… (cr_swap)
(press TAB for no echo)
************ zijn zichtbaar en je toetsenbord is al ingesteld (bv op azerty).