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:
- 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" }
Hi, editiert gehört nicht “nano config” sondern “nano /etc/ssh/ssh_config”, oder irre ich mich da? Ansonsten: Danke!
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.