NEWS
Probleme mit Exec
-
Ich bin gerade dabei meinen ioBroker von einer Debian VM auf eine neue Ubuntu VM umzuziehen.
Die Javascript-Adapter Version ist auf beiden Systemen gleich (4.1.12).
Auf Debian funktioniert die Abfrage der Uptime meiner CCU, auf Ubuntu nicht.
ssh root@192.168.4.5 uptime | awk '{print $3_$4_$5}'
Damit wollte ich mein Shell-Skript ablösen und alles einheitlich in Blockly abbilden
Wenn ich den Befehl in der Kosole eingebe, bekomme ich die gewünschte Ausgabe:
root@ioBroker-MASTER:~# ssh root@192.168.4.5 uptime | awk '{print $3_$4_$5}' 120days,1:36, root@ioBroker-MASTER:~#
-
@Kuddel Wie meldest du dich auf dem Zielhost an? Zertifikate? Dann muss das Zertifikat für den User
iobroker
(der den ssh-Befehl ausführt) auffindbar und lesbar sein. -
@AlCalzone ich habe auf dem zielsystem den public ssh key hintelegt, so dass keine pw abfrage kommt.
es kann sein, dass auf dem alt system der User ioBroker existiert und auf dem neuen nicht
-
@Kuddel Dann probier es doch mal von Hand (als ioBroker)
sudo su - iobroker -s /bin/bash ssh root@192.168.4.5 uptime | awk '{print $3_$4_$5}'
dann sehen wir vllt wo es hakt.
-
@AlCalzone sagte in Probleme mit Exec:
sudo su - iobroker -s /bin/bash
root@ioBroker-MASTER:~# sudo su - iobroker -s /bin/bash iobroker@ioBroker-MASTER:~$ ssh root@192.168.4.5 uptime | awk '{print $3_$4_$5}' root@192.168.4.5's password: 120days,4:10,
Der User ioBroker hat keinen Zugriff auf den SSH Key
root@ioBroker-MASTER:/home/iobroker# sudo su - iobroker -s /bin/bash iobroker@ioBroker-MASTER:~$ cd /root/.ssh -su: cd: /root/.ssh: Permission denied iobroker@ioBroker-MASTER:~$
root@ioBroker-MASTER:~/.ssh# ls -l total 12 -rw------- 1 root root 0 Sep 27 08:50 authorized_keys -rw------- 1 root root 1679 Nov 20 08:40 id_rsa -rw-r--r-- 1 root root 402 Nov 20 08:40 id_rsa.pub -rw-r--r-- 1 root root 2658 Nov 20 08:49 known_hosts root@ioBroker-MASTER:~/.ssh#
Wir kann ich dem user die Rechte geben ?
-
wie wärs mit "chown" ?
-
@HeliosFan sagte in Probleme mit Exec:
wie wärs mit "chown" ?
iobroker@ioBroker-MASTER:/root/.ssh$ chown iobroker id_rsa chown: changing ownership of 'id_rsa': Operation not permitted
-
@HeliosFan nein! Die Datei gehört root und das muss auch so bleiben.
@Kuddel
Du musst die gleiche SSH-ID im Kontext voniobroker
anlegen, d.h./home/iobroker/.ssh
. Wie ich schon schrieb:[...] muss das Zertifikat für den User iobroker (der den ssh-Befehl ausführt) auffindbar und lesbar sein.
Was auch immer du gemacht hast, um root zu authentifizieren, das gleiche musst du für iobroker machen, wenn du dich mit obigem Befehl als dieser "angemeldet" hast. Wenn du das kurz beschreiben könntest, wäre super - dann können wir das ein für alle mal dokumentieren.
-
dann könnte er doch einfach einen Move machen
-
@HeliosFan Und dann kann root sich nicht mehr anmelden. Und evtl auch nicht auf anderen Hosts, für die er noch Schlüssel hat.
-
Jetzt funktioniert es...
Ich habe die datei "id_rsa" mit dem SSH Key, der auf allen Systemen hintelegt ist nach /home/iobroker/.ssh kopiert und per chmod die berechtigungen geändert.
Wenn jetzt z.b. meinen DVB-C Receiver abfrage
iobroker@ioBroker-MASTER:~/.ssh$ ssh root@192.168.4.24 uptime | awk '{print $3_$4_$5}' The authenticity of host '192.168.4.24 (192.168.4.24)' can't be established. RSA key fingerprint is SHA256:MkOXmCMvJYSQrnxHcpTyVVaiVHSdkVXQ6M/S0QqJLWE. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.4.24' (RSA) to the list of known hosts. 18days,16:31,
bekomme ich ein Ergebnis
-
Ich habe wohl grad gleiches Problem..
ioBroker läuft im Docker, würde gerne über ein Blockly Script meinen Linux Rechner in den Standby schicken..
Aus der Docker Konsole klappt das auch wunderbar,
ssh root@192.168.54.143 /usr/sbin/pm-suspend
Linux Rechner geht in den Standby..
Nur im Blockly als exec passiert nichts, exec ist im Adapter erlaubt...Vermutlich gleiches Problem? iobroker logt sich als iobroker ein und nicht als root?
Aufjedenfall bekomm ichs nicht hin das sich iobroker ohne PW authentifizieren kann..
Hab auf meinen Linux System schon einen Benutzer "iobroker" angelegt, in /home/iobroker/.ssh/authorized_keys den Pub Key geklatscht...
Bei einem Test Login aus der Docker Konsole ssh iobroker@192.168.54.143 wird jedesmal ein PW abgefragt, ich verstehe nicht wieso..
Hat da noch jemand ne Idee?? -
@UncleB Das Problem ist andersherum. Du benötigst keinen User
iobroker
auf dem Zielrechner. Der Useriobroker
auf dem aktuellen Host benötigt die Zertifikate/whatever für root auf dem Zielhost.