IPS Raspi Befehle/Bashroutine an entfernten RASPI ausführen

Ich hab hier schon einige Infos gelesen über remote ssh ohne Passwort…
Ich möchte von meinem IPS Raspi Befehle auf einem entfernten Raspi ausführen.

Leider wird nach dem Passwort gefragt…

Bin nach der Anleitung vorgegangen, remote ssh ohne Passwort:

Ssh scp ohne Passwort Passworteingabe einrichten – znilwiki

Wenn ich meine befehle direkt auf dem RASPI eingebe, wird weiterhin nach dem Passwort gefragt…
Hat mir jemand ne Idee was ich da noch vergessen habe…?


Folgende Befehle schicke ich von meinen IPS Raspi los…:

shell_exec("sudo ssh root@192.168.2.3 sudo /home/pi/can_progs/./can_scan can0 680 180.0287.0001"); 
shell_exec("sudo ssh root@192.168.2.3 sudo /home/pi/can_progs/./can_scan can0 680 180.0613.0002");
shell_exec("sudo ssh root@192.168.2.3 sudo /home/pi/can_progs/./can_scan can0 680 180.025f.0100");
shell_exec("sudo ssh root@192.168.2.3 sudo /home/pi/can_progs/./can_scan can0 680 180.0287.0001");
shell_exec("sudo ssh root@192.168.2.3 sudo exit");

Damit kann ich die Kühlfunktion unserer Stiebel WPL13 per Canbus ein/ausschalten…

Früher habe ich das von meinem Windows IPS per Net SSH gemacht… Klappte super…
Jetz mit Raspi zu Raspi… happerts…

Das Problem ist sudo.
Du willst dich als User anmelden und dann Befehle mit Root Rechten ausführen. Dafür musst du einmalig das Passwort eingeben.
Du kannst das ganze umgehen, indem Du dich als Root am entfernten rpi anmeldest. Das ist im eigenen Netz vertretbar finde ich. Dazu musst du aber eine ssh Anmeldung als Root erst erlauben. Google ist dein Freund.
Dann brauchst du kein sudo vorm Befehl und damit kein erneutes Passwort.

Sebastian

Alternativ kannst du das ganze mit Passwort aus Symcon per ssh.
D.h. die Befehle werden von Symcon ausgeführt und nicht von einem entfernten Script.

Danke für die Denkanstösse! :smiley:
der Raspi hat keinen Internetzugang.
Für ein OS Upgrade wird einmalig Internet freigeschalten und danach wieder aus…

mit „sudo nano /etc/ssh/sshd_config“ die SSH Konfig angepasst …

dort hinzugefügt/korrigiert:

PermitRootLogin yes
AllowUsers root

Dann den ssh Dienst durchgestartet (sudo /etc/init.d/ssh restart) und schon funktionierts mit folgendem Code in IPS:

Einschalten der Kühlfunktion:

shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0287.0001");
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0613.0002");         
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.025f.0100");
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0287.0001");
shell_exec("ssh root@192.168.2.3 exit");

Ausschalten der Kühlfunktion

shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0613.0000"); 
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0287.8000");
shell_exec("ssh root@192.168.2.3 exit");

Leider ein bisschen zu früh gefreut…

Ich wollte die Funktion gerade im Webfront als Schalter (Case 1/0) einbauen…
Folgende Fehlermeldung kommt beim Aufruf übers Webfront:
fehler.JPG

Webfrontskript:

<?
if($IPS_SENDER == "WebFront")
{
switch($IPS_VALUE)
{
case 1:
// Kuehlung einschalten
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0287.0001");
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0613.0002");         
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.025f.0100");
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0287.0001");
shell_exec("ssh root@192.168.2.3 exit"); 
break;
case 0:
//Kuehlung ausschalten
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0613.0000");  
shell_exec("ssh root@192.168.2.3 /home/pi/can_progs/./can_scan can0 680 180.0287.8000"); 
shell_exec("ssh root@192.168.2.3 exit");  
break;
}
}
?>

Von meinem IPS Rapsi auf der Konsole aus per SSH geht’s:
konsole.JPG

Hi - habe gestern das selbe gebaut. Frage vom Symcon RasPi meinen Homebridge RasPi mit ssh ab.
Das ist ein Beispiel Script:


<?

$status = exec('ssh 192.168.178.35 /etc/init.d/homebridge status');
$time = exec('date');

SetValueString(24359 /*[Infos Webfront\Homebridge / Siri Status\Status]*/, $status); 
SetValueString(53117 /*[Infos Webfront\Homebridge / Siri Status\Letzter Refresh]*/, $time);

//Testausgabe
//echo "$status
$time";

?>

Schreibe noch die Ergebnisse in 2 Variablen zur Darstellung in der Webfront.
Problem war - wir hier erwähnt - das der Sycom als root auf dem RasPi läuft und er immer ein Passwort wollte.

Habe es aber mit diesen 2 Seiten hin bekommen:
Step 1 (ohne root)
http://www.linuxproblem.org/art_9.html
Step 2 (mit root)
https://www.rosehosting.com/blog/ssh-login-without-password-using-ssh-keys/