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" }

2 Gedanken zu „FHEM – Remote Shutdown von Linux Host per WOL Modul“

  1. Ich setze fhem nicht mehr aktiv ein, kann also leider nicht mehr “nachsehen”.
    Soweit ich mich erinnern kann, ist dies der Inhalt von der SSH-Client Datei (wenn eine ssh-session auf ein Remotesystem gestartet, ausgewertet wird).
    Da der fhem user soweit ich mich erinnern kann /opt/fhem als Heimverzeichnis gesetzt hat müsste das eigentlich /opt/fhem/.ssh/config sein..?

    Bitte gerne um Korrektur, jedoch /etc/ssh/sshd_config ist es definitiv nicht.

    Antworten

Schreibe einen Kommentar