FHEM – Remote Shutdown von Linux Host per WOL Modul

FHEM läuft nicht als root auf dem FHEM-Host, dadurch ist es notwendig für ein Remote-Shutdown ein paar Anpassungen vorzunehmen. In einem Fall ist der Remote-Host ein Debian Linux.

Ersetze im folgenden Beispiel die Variable <remote-hostname> durch den/deinen Hostnamen !

A. FHEM-Host: (Am FHEM System auszuführen)

1. Anpassen der Datei /etc/passwd , damit ein Login an der Bash Shell für den fhem User möglich wird.

nano /etc/passwd

Beim User fhem /bin/false auf /bin/bash ändern !

2. Anmelden als fhem User:

su - fhem

3. Key erstellen: (Abfragen nur mit ENTER überspringen)

mkdir .ssh & cd .ssh
ssh-keygen -t rsa

4. Key auf Remote-Host kopieren (Mir root User/Password beim Remote-Host anmelden)

ssh-copy-id -i /opt/fhem/.ssh/id_rsa.pub root@<remote-hostname>

B. Remote-Host:

  1. Hier erstellen wir nun einen Benutzer der das Recht zum herunterfahren bekommt, in meinem Fall heisst dieser User einfach „ausschalten“.
    useradd -s /bin/bash -d /home/ausschalten -m ausschalten
    mkdir /home/ausschalten/.ssh
    cp /root/.ssh/authorized_keys /home/ausschalten/.ssh/
    chown ausschalten:ausschalten -R /home/ausschalten
visudo

2. Erstelle hier folgenden Eintrag:

# User alias specification
ausschalten ALL = NOPASSWD: /sbin/shutdown

 

C. FHEM-Host: (immer noch als fhem User -> su – fhem)

nano config

Inhalt:

Host <remote-hostname>
        Hostname <remote-hostname> # oder IP-Adresse
        User ausschalten
        IdentityFile /opt/fhem/.ssh/id_rsa
        Port 22
        ServerAliveInterval 30
        ServerAliveCountMax 120

Testen der Anmeldung am Remote-Host:

ssh <remote-hostname>

Mit exit fhem User verlassen, und testen als root User:

su -s /bin/bash -c 'ssh <remote-hostname>' fhem

D. FHEM WOL Modul:

shutdownCmd =

{ system("ssh IP-ADRESSE 'sudo shutdown -h now'") }; {Log 1, "Shutdown: HOSTNAME" }
PrintFriendly and PDF

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.