Beiträge von FynnFreyer

    Es gibt auch Möglichkeiten einen rudimentären SSH-Server beim Bootvorgang zu starten, der das Passwort entgegen nimmt[.]

    Absolut richtig, habe ich selber spaßeshalber mal für ein mit LUKS verschlüsseltes System durchexerziert. Ich dumpe hier einfach mal meine Notizen dazu:

    Dropbear für Remote-Unlocking verschlüsselter Festplatten

    Benötigt werden die Pakete dropbear und dropbear-initramfs, welche ihre Konfigurationsdateien im Ordner /etc/dropbear/ bzw. /etc/dropbear/initramfs/ hinterlegen.

    Code
    # auf Debian basierten Systemen
    sudo apt install dropbear dropbear-initramfs
    
    # auf RHEL basierten Systemen
    sudo dnf install dropbear

    Einrichtung

    Nach Installation müssen die Start-Optionen angepasst und ein SSH-Schlüssel angelegt werden.

    Optionen

    In /etc/dropbear/initramfs/dropbear.conf wird die Zeile mit #DROPBEAR_OPTIONS= entkommentiert und die Optionen -s und -c cryptroot-unlock angefügt, um eine Passwort-Authentifikation zu verhindern und bei Verbindung das cryptroot-unlock Kommando zu erzwingen.

    Am Ende sollte dort so etwas wie DROPBEAR_OPTIONS='-s -c cryptroot-unlock' stehen, eventuell ergänzt um weitere Optionen.


    Code
    sed -i "s/#DROPBEAR_OPTIONS=/DROPBEAR_OPTIONS='-s -c cryptroot-unlock'/"

    Möglicherweise muss auf dem Server noch eine IP-Adresse und ein Hostname konfiguriert werden. Bei mir läuft das aber über meinen Router, der eine statische IP anhand der MAC-Adresse vergibt.

    Schlüssel

    Die Schlüssel für Dropbear liegen in /etc/dropbear/ und /etc/dropbear/initramfs/ und haben die Form dropbear_<algorithm>_host_key.

    Wir benutzen dieselben Keys wie OpenSSH, um nicht verschiedene Keys für den Host zulassen zu müssen.

    Zunächst sollten die alten Keys gelöscht werden.

    Code
    rm /etc/dropbear/dropbear_*_host_key
    rm /etc/dropbear/initramfs/dropbear_*_host_key

    Nun werden mit dropbearconvert die gewünschten OpenSSH-Keys (bei mir nur ed25519) in das Dropbear-Format überführt und im initramfs Verzeichnis hinterlegt und zusätzlich eine authorized_keys Datei angelegt. Wo die zugelassenen Schlüssel herkommen muss natürlich individuell angepasst werden.

    Code
    dropbearconvert openssh dropbear /etc/ssh/ssh_host_ed25519_key /etc/dropbear/initramfs/dropbear_ed25519_host_key
    cp ~/.ssh/authorized_keys /etc/dropbear/initramfs/authorized_keys

    Anschließen wird das initramfs regeneriert, um die Änderungen anzuwenden und ein Neustart durchgeführt, um die Funktion zu testen.

    Code
    update-initramfs -u
    reboot

    Danach kann auf dem Client ein Verbindungsversuch gestartet werden.

    Code
    ssh -4 root@host

    Ich muss mit -4 IPv4 erzwingen, ansonsten funktioniert es in meinem Netzwerk nicht.