• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

festplatte über ssh entschlüsseln vor Systemstart

Labtom

Newbie
Hallo zusammen,
habe folgendes Problem:
Habe auf meinem Desktop OpenSuse 13.2 installiert und bei der installation die Partition mit meinem home Verzeichnis verschlüsselt (man konnte bei der installation ein Häckchen für Verschlüsselung setzen). Nun ist das so, dass der Desktop eigentlich ein Remote-Desktop/server sein soll. D.h. ich kann ihn über WOL zum booten bringen müsste dann aber über eine angeschlossene Tastatur das Passwort zur Entschlüsselung der Home-Partition eingeben. Meine Frage: Geht das auch über ssh? Wie ich feststellen musste ist der ssh-daemon noch nicht geladen und ich kann mich nicht einloggen um dann die festplatte zu entschlüsseln.
ich hab natürlich im netz gesucht und bin im falle von ubuntu fündig geworden: https://www.thomas-krenn.com/de/wiki/Voll-verschl%C3%BCsseltes-System_via_SSH_freischalten

Hab mich daran mal versucht, bin aber bei dem "initramfs"-Schritt gescheitert (Verzeichnis existiert nicht)

Kann mir jemand helfen, sodass ich das Problem gelöst bekomme?

Gibt es in OpenSuse vlt eine einfachere Lösung für mein Problem?

Grüße
Tom
 

gehrke

Administrator
Teammitglied
Wenn Du tatsächlich nur Dein /home verschlüsselt hast, dann sollte Dein System booten inkl. dem ssh-Server und eine Anmeldung als root-User sollte möglich sein, wenn das konfiguriert ist. Damit wäre dann auch die manuelle Entschlüsselung von /home problemlos möglich.

Wenn Du aber wie in dem TK-Artikel beschrieben eine Beinahe-Vollverschlüsselung gemacht hast, dann wird Dir auf normalen Weg ohne Eingabe der Passphrase kein ssh-Dienst zur Verfügung stehen, weil weite Teile des Betriebssystems (insbesondere der Netzwerk-Stack) noch nicht geladen sind. Da hilft dann nur die lokale Eingabe der Passphrase oder eine zusätzliche Remote-Verbindung wie beispielsweise über IPMI/SOL.

In dem Wiki-Artikel wird noch eine weitere Möglichkeit angesprochen, die mir sehr interessant erscheint: Der Mini-SSH-Server dropbear bereits in der ganz frühen Boot-Phase einzubauen. Das kenne ich selbst so noch nicht und kann dazu leider gar nichts sagen. Ich glaube jedenfalls, dass Du dafür keine Automatismen von SUSE nutzen kannst, sondern von Hand ran musst. Das habe ich bislang noch nicht gesehen.
Ich vermute, dass es an der Stelle auch nicht reicht, dies nur einmalig zu machen, sondern dass dies auch in den Update-Prozess von SUSE eingekittet werden muss, weil ansonsten die Zieldateien beim nächsten Kernel-Patch überschrieben werden.

Hierzu würde mich eine Erfolgsmeldung sehr interessieren...
 
Da ich kein opensuse verwende, kann ich hier nur raten, bzw allgemeine Tipps geben: Für die initrd wären die Dateien unterhalb /etc/sysconfig zuständig, so 13.2 noch mit mkinitrd funktioniert und das nicht nur ein Link auf dracut ist wie bei sles12...
Ansonsten wird dropbear sicherlich eine man-page oder auch eine eigene Dokumentation mitbringen. Da dann mal nach suchen und lesen.
 

josef-wien

Ultimate Guru
Geier0815 schrieb:
Für die initrd wären die Dateien unterhalb /etc/sysconfig zuständig
Das setzt aber voraus, daß ein Skript in /lib/mkinitrd/scripts mit einer solchen Datei etwas macht (bei meinem 13.1 ist das bei 8 von 74 der Fall). Für den vorliegenden Fall wäre vermutlich ein eigenes Skript zu erstellen, das alle notwendigen Aktionen ausführt (welche auch immer das sein mögen).

Geier0815 schrieb:
so 13.2 noch mit mkinitrd funktioniert
13.2 verwendet dracut, und dazu kann ich nichts beitragen.
 

spoensche

Moderator
Teammitglied
Das Thema kommt mir irgendwie bekannt vor und ich meine, dass wir es inkl. Lösung hatten. Ich finde es allerdings nicht mehr.

@Labtom:

Du kannst in der dracut.conf mit den Variablen install_items und install_optional_items zusätzliche Dateien angeben, die dracut dann in das initramfs integriert.
 
OP
L

Labtom

Newbie
Danke erstmal für eure Vorschläge. Scheint nicht ganz so banal zu sein....

gehrke schrieb:
Wenn Du tatsächlich nur Dein /home verschlüsselt hast, dann sollte Dein System booten inkl. dem ssh-Server und eine Anmeldung als root-User sollte möglich sein, wenn das konfiguriert ist. Damit wäre dann auch die manuelle Entschlüsselung von /home problemlos möglich.

ich hab definitiv nur meine home partition verschlüsselt. Beim Booten wird mein Bildschirm Schwarz und zeigt nichts an. Erst wenn ich (blind) mit der angeschlossenen Tastatur das entschlüsselung Passwort eingebe, kommt der Login Screen.

erst dann ist es möglich mich über ssh zu verbinden. D.h. der Daemon ist noch nicht gestartet, oder?
 

gehrke

Administrator
Teammitglied
Labtom schrieb:
Erst wenn ich (blind) mit der angeschlossenen Tastatur das entschlüsselung Passwort eingebe, kommt der Login Screen.

erst dann ist es möglich mich über ssh zu verbinden. D.h. der Daemon ist noch nicht gestartet, oder?
Nicht unbedingt. Hast Du mal versucht, Dich in dieser Phase per ssh zu verbinden? Wenn ja, welche Meldung kommt dann?

Aber Deine Beschreibung passt nicht ganz zu meinen Erfahrungen, eigentlich sollte das Verhalten anders sein (der Bildschirm dürfte nicht schwarz/leer sein), wenn ich Deine bisherigen Angaben richtig verstanden habe. Kannst Du bitte mal als root-User den folgenden Befehl eingeben und den Output hier posten?:
Code:
lsblk
TNX
 
OP
L

Labtom

Newbie
gehrke schrieb:
Hast Du mal versucht, Dich in dieser Phase per ssh zu verbinden? Wenn ja, welche Meldung kommt dann?
TNX

Ja hab ich. Hat nicht funktioniert. Keine reaktion. Kann das jetzt grad nicht testen aber glaube dass da "No route to host" als Meldung kam...
Der Autput

Code:
lsblk

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0 111,8G  0 disk  
├─sda1        8:1    0    80G  0 part  /
└─sda2        8:2    0  31,8G  0 part  /opt
sdb           8:16   0 931,5G  0 disk  
├─sdb1        8:17   0   156M  0 part  /boot/efi
├─sdb2        8:18   0    16G  0 part  [SWAP]
└─sdb3        8:19   0 895,4G  0 part  
  └─cr_home 254:0    0 895,4G  0 crypt /home
sr0          11:0    1  1024M  0 rom
 

gehrke

Administrator
Teammitglied
Darf ich Dich noch um den Output des Folgenden bitten?
Code:
cat /etc/fstab
cat /etc/crypttab
 
OP
L

Labtom

Newbie
jo...
Code:
cat /etc/fstab
UUID=e7202408-5d92-47d2-8dcc-02fc0866e92f /                    ext4       acl,user_xattr        1 1
/dev/mapper/cr_home  /home                ext4       acl,user_xattr,nofail 0 2
UUID=675ff8ec-7afb-42f0-82e6-bcaf0a473311 swap                 swap       defaults              0 0
UUID=C98A-CA81       /boot/efi            vfat       umask=0002,utf8=true  0 0
UUID=ad057083-c0fa-4f8e-bf46-d3984764f176 /opt                 ext4       acl,user_xattr        1 2

und
Code:
cat /etc/crypttab
cr_home         /dev/disk/by-id/ata-WDC_WD10EZEX-00BN5A0_WD-WCC3F2XFA5CR-part3 none       none
 

gehrke

Administrator
Teammitglied
Ich würde mal versuchen, in beiden Dateien die Zeile für /home auszukommentieren, indem Du ein # zu Beginn setzt. Danach neu starten.

IMHO sollte das System dann ohne Passphrase abzufragen booten bis zum Login. Der wird dann natürlich ohne /home fehlschlagen, aber in dieser Phase könnte sshd dann gestartet sein und wenn konfiguriert ein Login via ssh als root möglich sein. Der nächste Schritt wäre dann, den home-Container analog hier
http://wiki.linux-club.de/opensuse/Bootloader_wiederherstellen#Cryptbereich_entschl.C3.BCsseln
manuell zu entschlüsseln und anschließend zu mounten.

BTW: ssh-Zugang für root ist aus Sicherheitsgründen umstritten. Das solltest Du abwägen und mindestens auf pubkey-Authentifizierung umstellen, wenn Du das so dauerhaft betreiben willst.
 
OP
L

Labtom

Newbie
gehrke schrieb:
Ich würde mal versuchen, in beiden Dateien die Zeile für /home auszukommentieren, indem Du ein # zu Beginn setzt. Danach neu starten.

IMHO sollte das System dann ohne Passphrase abzufragen booten bis zum Login. Der wird dann natürlich ohne /home fehlschlagen, aber in dieser Phase könnte sshd dann gestartet sein und wenn konfiguriert ein Login via ssh als root möglich sein. Der nächste Schritt wäre dann, den home-Container analog hier
http://wiki.linux-club.de/opensuse/Bootloader_wiederherstellen#Cryptbereich_entschl.C3.BCsseln
manuell zu entschlüsseln und anschließend zu mounten.

BTW: ssh-Zugang für root ist aus Sicherheitsgründen umstritten. Das solltest Du abwägen und mindestens auf pubkey-Authentifizierung umstellen, wenn Du das so dauerhaft betreiben willst.

hmm was mache ich wenn der Bildschirm schwarz bleibt, also wenn nachdem auskommetieren nix mehr geht. Dann kann ich mich ja nicht mehr einloggen und und "#" rausnehmen oder?

Wicked benutz ich schon. Aber das könnte natürlich auch sein, dass die Netzwerkkarte noch nicht geladen ist, oder?
Danke nochmal...
 

gehrke

Administrator
Teammitglied
Labtom schrieb:
hmm was mache ich wenn der Bildschirm schwarz bleibt, also wenn nachdem auskommetieren nix mehr geht. Dann kann ich mich ja nicht mehr einloggen und und "#" rausnehmen oder?
Ich wüßte nicht, warum das so kommen sollte. Aber irgendwas ist ja immer - getreu dem Motto macht es sich immer gut, eine Live-Version als CD, DVD oder USB-Stick zur Hand zu haben, um das System damit im Notfall booten und recovern zu können.
 

josef-wien

Ultimate Guru
Um als root zu arbeiten, ist die Home-Partition absolut nicht erforderlich (das Heimatverzeichnis von root heißt /root und befindet sich auf der Systempartition).

Aber ich denke, Du solltest erst das Bildschirm-Problem lösen. Hast Du schon die Boot-Option nomodeset oder den Failsafe-Start ("abgesicherter Modus") versucht?

Labtom schrieb:
Aber das könnte natürlich auch sein, dass die Netzwerkkarte noch nicht geladen ist
Auch das ist möglich, wenn der systemd-Dienst zum Entschlüsseln direkt oder über Abhängigkeiten anderer Dienste so definiert ist.
 
Oben