SSH Befehl zum shutdown eines anderen Pis

Begonnen von jay-jey, 03 Januar 2017, 11:25:27

Vorheriges Thema - Nächstes Thema

jay-jey

Hallo,

ich habe in der Küche einen Pi Zero mit Openelec an einer Schaltsteckdose hängen. Ich würde nun gerne den Pi Zero per FHEM irgendwie herunterfahren bevor ich die Schaltsteckdose abschalte. Ich habe daher versucht das ganze per SSH, von dem PI 3b mit FHEM, zu lösen. Das Problem ist nur, dass sich dabei irgendwie FHEM aufhängt. Ich setze den Befehl ab und danach reagiert FHEM nicht mehr, und lässt sich auch nicht mehr starten nur über einen Reboot des PI 3b.

Kann mir einer sagen was hier schief läuft?

Die Verbindung wird über ssh mittels publich key hergestellt nach der Vorlage von dieser Seite:
http://www.linuxfun.de/homeautomation/fhem/ssh-befehle-auf-anderen-rechnern-mit-fhem-ausfuehren/

Im Log sehe ich nur die folgenden Meldungen:

2017.01.03 09:21:01 3: [SB_Kueche_wol] set SB_Kueche_wol off
2017.01.03 09:21:01 3: [SB_Kueche_wol] shutdownCmd: { system("ssh root\@openelec 'shutdown -h now'") };; {Log 1, "Shutdown: SB_KUECHE" } executed

jetzt keine reaktion mehr und fhem per /etc/init.d/fhem stop/start neu gestartet


2017.01.03 09:22:44 1: Including fhem.cfg
2017.01.03 09:22:45 1: WEB: Can't open server port at 8083: Die Adresse wird bereits verwendet. Exiting.


hier ein List des WOL devices


Save config
0_Aussen
1_Arbeitszimmer
2_Wohnzimmer
3_Bad
4_Schlafzimmer
5_Küche
Computer
HUEDevice
Heizung
Plots
SB_PLAYER
Smartvisu
Unsorted
ZWave
Zentral
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   DEF        00:00:00:00:00:fe 192.168.2.108 EW
   IP         192.168.2.108
   MAC        00:00:00:00:00:fe
   MODE       EW
   NAME       SB_Kueche_wol
   NR         137
   REPEAT     000
   STATE      off
   TYPE       WOL
   Readings:
     2017-01-03 09:27:03   active          off
     2017-01-03 11:12:36   isRunning       false
     2017-01-03 09:27:03   packet_via_EW   none
     2017-01-03 09:27:03   packet_via_UDP  none
     2017-01-03 11:12:36   state           off
   Timer:
     Sb_kueche_wol_ping:
       HASH       SB_Kueche_wol
       MODIFIER   ping
       NAME       SB_Kueche_wol_ping
   Helper:
Attributes:
   room       5_Küche
   shutdownCmd { system("ssh root\@openelec 'shutdown -h now'") }; {Log 1, "Shutdown: SB_KUECHE" }

digiart

Funktioniert denn der Aufruf direkt von der Konsole aus? Aber Achtung: FHEM läuft normalerweise unter dem User fhem!

Der Aufruf in der Konsole müsste dann ungefähr so aussehen:sudo -u fhem /usr/bin/ssh root@openelec '/sbin/shutdown -h now'
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

jay-jey


Wernieman

Tu Dir einen Gefallen und back es in ein "eigenes Script". Dieses dann am besten "im Hintergrund" starten, also per "shutdownCmd: { system("/opt/fhem/MeinScript &") }"

Wichtig ist das "&", da dadurch das Script "in den Hintergrund" geschoben wird.

Ansonsten wäre bezüglich ssh noch der "ConnectTimeout"zu erwähnen. Dein Pi dürfte sich so schnell runterfahren, das der ssh-client es nicht merkt und deshalb die Verbindung "hängenbleibt".
Zitat-o ConnectTimeout=2
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

jay-jey

Danke für schnelle Hilfe scheint jetzt zu funktionieren

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

jay-jey

Ich habe es nur einem eigenen Skript. Hab auch nun den Shutdown Befehl ohne now. Überwache das ganze dann mit einem WOL, dann erst wird die Steckdose ausgeschaltet. 

Fixel2012

Das WOL Modul hat eine eigene Shutdown Routine, nutze diese z.B. auch für meinen Windows PC. Ich denke dies sollte auch mit einem Linux Rechner gehen?

Ich löse das bei mir so:

attr PC shutdownCmd "net rpc shutdown -f -t 5 -C "Rechner wird von FHEM aus heruntergefahren!" -I 192.168.1.15
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

jay-jey

Hallo,

also ich muss das Thema noch mal beleben. Vielleicht ein wenig OFF-Topic aber vielleicht hat ja jemand ne Idee. Also einen anderen Pi mit Raspbian per remote runterfahren ist jetzt kein Thema mehr, aber ich hab noch ein Problem meinem Squeezbox-Server. Der läuft auch auf einem Pi mit max2play. Das war am Einfachsten weil alles schon vorinstalliert war.

Leider kann ich zu dem Rechner keine ssh Verbindung ohne Passwortabfrage aufbauen. Shared keys sind eingerichtet aber er will trotzdem das Passwort haben. Hab auch schon mal im Max2play forum nachgefragt und die meinten, ich muss die ssh-verbindung offen lassen:
http://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/

aber das bekomme ich auch nicht so recht hin.
Daher die Frage:

Kann mir hier jemand vielleicht sagen was ich bei ssh einstellen muss, damit die Passwortabfrage nicht mehr kommt?

Bzw. eventuell könnte man das Problem noch anders lösen: der Server hat ne WEB-Oberfläche mit nem herunterfahren button. Könnte man irgenndwie einen klick auf den Button mit fhem simulieren?

CoolTux

Schau mal in der sshd_config ob Du da sowas drin zu stehen hast

RSAAuthentication yes
PubkeyAuthentication yes
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

jay-jey

Hallo,

ja habe ich drin stehen. by the way: was ist eigentlich der unterschied zwischen ssh_config und sshd_config

hier mal die complette config:



# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes


X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes


CoolTux

Ssh_config ist die config des Clients und sshd_config die config des Servers.
Hast du den hostkey auch dort liegen wo er laut config liegen sollte? Hast auch auf clientseite das keyfile korrekt abgelegt?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Zitat von: jay-jey am 21 März 2017, 08:19:09
Kann mir hier jemand vielleicht sagen was ich bei ssh einstellen muss, damit die Passwortabfrage nicht mehr kommt?
Hi,

die Frage ist welche Passwortabfrage? Die vom Gegenüber oder hast Du den Key mit passphrase erzeugt?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hanswerner1

Zitat von: Fixel2012 am 25 Januar 2017, 20:32:52
Das WOL Modul hat eine eigene Shutdown Routine, nutze diese z.B. auch für meinen Windows PC. Ich denke dies sollte auch mit einem Linux Rechner gehen?
Ich löse das bei mir so:
attr PC shutdownCmd "net rpc shutdown -f -t 5 -C "Rechner wird von FHEM aus heruntergefahren!" -I 192.168.1.15

Ich starte meinen Windows 10 PC auch über WOL, suche jetzt noch eine Möglichkeit ihn wieder über FHEM runterzufahren.
Der Code von Fixel2012 funktioniert bei mir leider nicht.
Hat jemand eine Idee ?

Fixel2012

Zitat von: hanswerner1 am 21 März 2017, 20:56:06
Ich starte meinen Windows 10 PC auch über WOL, suche jetzt noch eine Möglichkeit ihn wieder über FHEM runterzufahren.
Der Code von Fixel2012 funktioniert bei mir leider nicht.
Hat jemand eine Idee ?
Habe damit auch länger rumgemacht, Schluss endlich habe ich dazu etwas auf dem Blog von Otto gelesen.

Wenn ich  mich recht entsinne musste ich auch einige Firewall regeln hinzufügen, bin mir nicht mehr sicher.

Einen konkreten Link habe ich leider nicht, sorry.

EDIT: eben doch noch gefunden, bitte schön.

http://heinz-otto.blogspot.de/2015/04/computer-mit-fhem-und-ausschalten.html?m=1
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify