Hauptmenü

SSH Shell-Befehl aufrufen

Begonnen von achim60, 14 April 2017, 14:00:23

Vorheriges Thema - Nächstes Thema

achim60

Hallo, ich habe mir ein Test Device erstellt um ein SSH Befehl per Shell abzusetzen.
Fhem läuft auf einem Raspberry. (Eine SSH-Authentifizierung mit Schlüsselpaaren wurde erstellt)

Es passiert aber nichts wenn ich das Device per set di_nureintest starte.

Auf der Shell funktioniert es mit  ssh 192.168.178.68 -p 22 -l pi -t ./cam-flur.sh

Dort geht er auf einen anderen Raspberry (192.168.178.68) und führt dort das  Shell-Script cam-flur.sh aus.



Internals:
   CFGFN
   DEF        ({system('sudo ssh 192.168.178.68 -p 22 -l pi -t ./cam-flur.sh');;;;})
   NAME       di_nureintest
   NR         872
   NTFY_ORDER 50-di_nureintest
   STATE      initialize
   TYPE       DOIF
   Readings:
     2017-04-14 13:45:59   state           initialize
   Condition:
     0          {system('sudo ssh 192.168.178.68 -p 22 -l pi -t ./cam-flur.sh');;;;}
   Devices:
   Do:
     0:
       0
     1:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Regexp:
   State:
Attributes:
   do         always
   room       Cam




Gruß
Achim

stromer-12

#1
Ich vermute mal, da FHEM mit dem Benutzer fhem läuft und du deine Key unter dem Benutzer pi abgelegt hast, wird das so nicht funktionieren.
Du kannst ja das KeyFile als Option mit übergeben.

Edit: Auf das KeyFile (Privater Schlüssel) hat aber im Normalfall nur der Besitzer Zugriff.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

CoolTux

Das allein wird nicht reichen. Bei jeder ersten Verbindung mit einem Rechner wird ein Maschienenkey angelegt. Diesen muss man einmalig bestätigen. Also wenn dann den ganzen Ordner .ssh vom User pi nach /opt/fhem/ und die Rechte anpassen.
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

igami

Und du hast als Bedingung deinen Ausführungsteil im DOIF angegeben.
Den Befehl kannst du übrigens auch in Anführungszeichen setzen. Siehe dazu die commandref fhem Befehlstypen oder so ähnlich heißt der Abschnitt.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

achim60

Zitat von: CoolTux am 14 April 2017, 14:54:06
Das allein wird nicht reichen. Bei jeder ersten Verbindung mit einem Rechner wird ein Maschienenkey angelegt. Diesen muss man einmalig bestätigen. Also wenn dann den ganzen Ordner .ssh vom User pi nach /opt/fhem/ und die Rechte anpassen.


Hallo,
habe ich gemacht, jedoch ohne Erfolg. Es passiert einfach nichts  ???
Gehe ich den richtig vor oder sollte man das WOL Modul dafür eher nutzen ?

igami

Hast du deinem DOIF auch mittlerweile eine Bedingung gegeben?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

CoolTux

 Schau Dir Mal den su Befehl an. Da kannst du einen Befehl als User pi ausführen dessen Kontext als User fhem laufen soll. Damit kannst Du erstmal Deine ssh Findig für User pi testen.
Ansonsten nehme lieber WOL. Man muss schon bisschen vertraut mit Linux oder BSD sein für ssh Geschichten.
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