FHEM – WOL Shutdown via SSHPASS

Im regulären nutzt man SSHPASS nicht, sicherer und einfacher ist die Nutzung von ssh-keygen, nur gibt es Geräte bei denen dies leider nicht funktioniert.
Bei diesen Geräten werden die Dateien, welche man ablegt leider nicht auf Dauer gespeichert, dies ist im Regelfall nicht änderbar.
Mein NAS ist von ZyXEL und der Shutdown ist per ssh-keygen leider nicht möglich.

Nach langem hin und her bin ich auf SSHPASS gekommen.
Für die Nutzung von SSHPASS muss man einen Zwischenschritt durchführen, im Endeffekt eine Authentifizierung, welche man bei jedem ersten SSH-Zugriff bestätigen muss.
Dieser Schritt läuft über /etc/passwd und kann bei falschem Handeln auch etwas kaputt machen oder auch die Installation beschädigen kann und man muss alles neu aufsetzen am FHEM-Server.

!!! Die Nutzung von Befehlen und Codes sind auf eigene Gefahr, ich übernehme keine Haftung für entstehende Schäden oder sonstigem !!!

Den FHEM-User vorbereiten für die Bekanntmachung mit dem Zielgerät
Da der User fhem ein Anmelden verhindert und kein Passwort für einen Login besitzt, müssen wird dies umgehen, sodass wir Host und Zielgerät bekannt machen können. Hier erstellen wir eine Kopie der passwd File und geben dem User fhem, die Möglichkeit zum Login und ein Passwort, nun loggen wir uns als fhem ein.
Anschließend nutzen wir SSH, um eine Verbindung zum Zielgerät herzustellen.

Legende

[ZielIP] = IP des Zielgerätes
[ZielUser] = User des Zielgerätes
[ZielPasswort] = SSH Passwort des Zielgerätes
[ZielMAC] = MAC-Adresse des Zielgerätes

Bitte bei den nachfolgenden Befehlen mit eigenen Daten ersetzen.

sudo cp /etc/passwd /etc/passwd.sav
sudo nano /etc/passwd
# "/opt/fhem:/bin/false" in "/opt/fhem:/bin/bash" ändern und die Datei speichern

sudo passwd fhem
# Nun müssen wir ein Passwort eingeben und dies wiederholen

su fhem
# Nun wird das zuvor festgelegte Passwort benötigt

ssh [ZielUser]@[ZielIP]
# in meinem Fall ist der ZielUser: root
# Die ZielIP lässt sich über den Router auslesen
# Nun mit "yes" bestätigen

exit
# Mit "exit" verlassen wir das Zielsystem wieder

Jetzt müssen wir die passwd File wieder auf Ursprung zurücksetzen.

sudo cp /etc/passwd.sav /etc/passwd

Der letzte Schritt installieren wir SSHPASS auf unserem Host und testen den Zugriff.

sudo apt-get install sshpass

sshpass -p [ZielPasswort] ssh [ZielUser]@[ZielIP]

Wenn alles funktioniert, dann können wir unser Device in FHEM einrichten oder anpassen.
Die useUdpBroadcast IP kann von Router zu Router abweichen, ich nutze eine FritzBox.

define WOL.NAS.FS WOL [ZielMAC] [ZielIP] UDP
attr WOL.NAS.FS shutdownCmd "sshpass -p [ZielPasswort] ssh [ZielUser]@[ZielIP] poweroff &"
attr WOL.NAS.FS useUdpBroadcast 192.168.255.255

Viel Spaß bei der Nutzung!! =)

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.