NEWS
Simple-SSH Script lässt Javascript Adapter abstürzen
-
Vielleicht als Alternative einfach normales SSH mit Public-Key-Authentifizierung verwenden, das entspricht dem normalen Linux Sicherheitskonzept da Passwörter nicht in Skripten hinterlegt sind und bringt den Javascript Adapter nicht durcheinander.
Anleitung zum Einrichten:
https://www.thomas-krenn.com/de/wiki/OpenSSH_Public_Key_Authentifizierung_unter_Ubuntu
Wenn die Verbindung eingerichtet ist einfach die Keys zum iobroker User übertragen:
cp -rT /home/pi/.ssh/ /home/iobroker/.ssh chown iobroker /home/iobroker/.ssh/authorized_keys chown iobroker /home/iobroker/.ssh/id_rsa chown iobroker /home/iobroker/.ssh/known_hosts
-
@TeNNo2k5
... viele Wege führen nach Rom
Allerdings scheint mir diese Variante für "Nicht-Linux-Spezies" doch recht kompliziert.Ich hatte anfangs auch nicht mit solchen Problemen bei einem Shutdown via SSH gerechnet.
Habe aber - Dank Eurer Hilfe - eine Lösung gefunden und vor allem einiges dazugelernt.Danke nochmals
Jörg -
@joergeli said in Simple-SSH Script lässt Javascript Adapter abstürzen:
Also nicht simple-ssh verwenden, sondern node-ssh.
Dieses node-ssh muss das irgendwie neu installiert werden oder was muss gemacht werden?
Ich habe das mal probiert, aber es kommt die Meldung "TypeError: node_ssh is not a constructor"
Karl
-
@khk
Es sollte reichen, node-ssh als zusätzliches Modul in der Konfiguration des JS-Adapters mit einzutragen.
IMHO wird es dann automatisch installiert.
Gruß
Jörg -
@khk du kannst das Skript von oben nicht mehr verwenden. Es haben sich die Aufrufe geändert. Musst dir mal das Example angucken -> https://www.npmjs.com/package/node-ssh
Ich hab meine Skripte so angepasst:const {NodeSSH} = require('node-ssh') const ssh = new NodeSSH() ssh.connect({ host: '192.168.xxx.xxx', username: '<user>', password: '<pass>' }).then(() => { ssh.execCommand("<command>"); })
-
@el_malto
Was ist da jetzt anders als im obigen Script?
(Außer daß Du NodeSSH in geschweiften Klammern? als Konstante deklariert hast)Oder übergibst Du das password nicht nochmals im ssh.execCommand?
Gruß
Jörg -
@joergeli es ist jetzt nicht mehr
node_ssh
sondernNodeSSH
. Deswegen auch der Fehler."TypeError: node_ssh is not a constructor"
Ist im Changelog auch drin:
https://github.com/steelbrain/node-ssh/blob/master/CHANGELOG.md#1100 -
@el_malto
ahhh, OK.
Ich habe es bei mir jetzt auch wie bei Dir angepasst.const {NodeSSH} = require('node-ssh') const ssh = new NodeSSH()
Nebenbei:
Bei mir kam keine Fehlermeldung wie bei @KHK, weil ich irgendwann schon mal folgende Anpassung vorgenommen hatte:var node_ssh = require('node-ssh').NodeSSH; var ssh = new node_ssh();
(Hatte ich wohl irgendwo im Forum gefunden)
Gruß und Danke
Jörg -
Hat jemand aktuell noch ein ssh script am laufen? Ich bekomme das Modul nicht installiert:
javascript.0 2021-04-26 07:54:48.372 error (22266) Cannot install nodessh: 1 javascript.0 2021-04-26 07:54:48.358 error (22266) npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-04-26T05_54_48_349Z-debug.log javascript.0 2021-04-26 07:54:48.357 error (22266) javascript.0 2021-04-26 07:54:48.348 error (22266) ERR! 404 Not Found - GET https://registry.npmjs.org/nodessh - Not found npm ERR! 404 npm ERR! 404 'nodessh@latest' is not in the npm registry. npm ERR! 404 You should bug the author to publi javascript.0 2021-04-26 07:54:48.346 error (22266) npm javascript.0 2021-04-26 07:54:48.338 error (22266) ERR! code E404 javascript.0 2021-04-26 07:54:48.336 error (22266) npm javascript.0 2021-04-26 07:54:46.257 info (22266) npm install nodessh --production (System call)
-
@hansi1234 Das könnte daran liegen das das Module node-ssh heisst, nicht nodessh
A.
-
Ich bekomme folgende Fehlermeldung, wenn ich das Skript starte. Hat jemand eine Idee?
javascript.0 2021-09-28 16:22:28.756 error (2289) at Script.runInContext (vm.js:130:18) javascript.0 2021-09-28 16:22:28.755 error (2289) at script.js.common.Automatisierung.Geräte.3D_Drucker.Shutdown_OctPi:19:3 javascript.0 2021-09-28 16:22:28.755 error (2289) at script.js.common.Automatisierung.Geräte.3D_Drucker.Shutdown_OctPi:2:11 javascript.0 2021-09-28 16:22:28.754 error (2289) script.js.common.Automatisierung.Geräte.3D_Drucker.Shutdown_OctPi: TypeError: node_ssh is not a constructor
-
@dragon sagte in Simple-SSH Script lässt Javascript Adapter abstürzen:
Automatisierung.Geräte.3D_Drucker.Shutdown_OctPi
Zeige mal dein Script
-
@glasfaser
Vielen Dank für das Hilfsangebot, aber ich habe den Fehler gefunden. Er saß teilweise vor der Tastaturvar node_ssh = require('node-ssh').NodeSSH; var ssh = new node_ssh();
erstens das hier.
Zweitens: das Passwort war falsch und die IP Adresse stimmte nicht.... Vll ist es an der Zeit für heute Feierabend zu machen....