Mit FHEM auf einem anderen RPI GPIO schaltern ?

Begonnen von cs-online, 09 September 2018, 14:39:44

Vorheriges Thema - Nächstes Thema

Wernieman

- Hast Du es als User pi oder als User fhem probiert?
- Hast Du es in der FHEM-Commandozeile probiert?
- 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

cs-online

Hallo,

im Terminal auf dem FHEM-Server habe ich das so einkopiert: ssh pi@192.168.2.21 bash taste.sh 17

Funktioniert dann. Aber vermutlich als PI, aber das hat ja immer funktioniert und am FHEM-Server selber habe ich ausser FHEM-Updates nichts geändert, soweit ich mich erinnere.

Wenn ich das in der Kommandozeile eingeben will (ich habe das direkt probiert, ich habe System("ssh pi@192.168.2.21 bash taste.sh 17") mit und ohne {} davor/dahinter probiert), bekomme ich immer diverse Fehler, die darauf schließen lassen, dass ich das falsch eingebe.

Ich hab von Linux keinen Plan, ich nutz das nur für FHEM und stehe da ganz offen gestanden auch mit auf Kriegsfuss mit den ganzen Rechten und Gruppen und und und ....

Was kann ich tun, um das weiter einzugrenzen ?

Grüße

Christian

FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Wernieman

FHEM läuft als User FHEM und NICHT als PI!

Du könntest Du known_host vom User PI zum User FHEM kopieren, must aber auf die Rechte aufpassen. Wie gut kennst Du Dich mit der Konsole aus?
- 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

cs-online

#33
...ein bißchen, ich hätte aber auch eine grafische Oberfläche... Im Home-Ordner gibt es aber nur den PI-Ordner, keinen FHEM, auch mit sudo ls im Ordner Home ist nur der PI-Ordner drin... und mit su fhem fragt er nach einem PW, ich habe aber nie eins vergeben, soweit ich weiß....


pi@raspberrypi:/home $ su fhem
Passwort:
su: Fehler bei Authentifizierung
pi@raspberrypi:/home $ su fhem
Passwort:
su: Fehler bei Authentifizierung
pi@raspberrypi:/home $ su fhem
Passwort:
pi@raspberrypi:/home $ ls
pi
pi@raspberrypi:/home $ su fhem
Passwort:
pi@raspberrypi:/home $


Beim letzten Versuch habe ich das PW für den User PI eingegeben, dann kommt keine Fehlermeldung, es tut sich aber trotzdem nichts...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Wernieman

O.K. Du kennst Dich nicht aus ...

1. Bitte keine Grafische Oberfläche auf einen Server", macht es nur noch komplizierter
2. Mit sudo änderst Du zwar den aktuellen User, gehst aber nicht automatisch in dessen Home-Verzeichnis

Nur um es mal zu verdeutlichen:
sudo ls ~
Du wirst dann das Home-Verzeichnis von root und nicht von fhem sehen ....

Um es kurz zu machen.,
fhem läuft unter dem User fhem. Ein pi hat (bisher) zusätzlich den User pi, damit jemand sich einloggen kann. Es gibt noch viel mehr User, nur mal zum schauen:
cat /etc/passwd
Linux ist ein echtes Mehrbenutzersystem, so das für jeden Deamon (Server-Prozess) meistens ein eigener User genommen wird. Deshalb eben so viele User. Jeder dieser User hat ein eigenes Home-Verzeichnis, was DU auch in der passwd Datei sehen kannst. Normalerweise eben bei pi /home/pi, bei fhem /opt/fhem. Bei root als Besonderheit /root, hat Historische (und Start-Optimierungs) Gründe. Die Programme legen natürlich Daten in dem Aufrufenden User-Kontext ab, also normalerweise im home-Verzeichnis. Deshalb kann etwas als User pi klappen und eben als fhem nicht. Genauso geht es auch andersherum. Dieses ist ein großes Sicherheitsfeature, da eben ein normaler User kein Deamon wie FHEM "ärgern" kann.

Du willst jetzt eigentlich nur, das der User FHEM auf Deinen entfernten PI zugreifen kann. Da dieser User es laut Deiner Fehlermeldung noch nie getan hat, fragt er natürlich ab, ob er es darf. Dieses kann das Programm fhem natürlich nicht beantowrten und es giebt einen fehler.

Zum Lösen kannst Du also eine der folgenden Möglichkeiten Nutzen:
- die Abgelegten Informationen ins Home-Verzeichnis kopieren
- ssh einfach mal sagen, ist schon O.K. und lege ab.

Für letzteres einfach mal in der FHEM-Kommandozeile:
ssh -o "StrictHostKeyChecking=accept-new" <user>@<Zielrechner>
Hinweis: <user> und <Zielrechner> passend ändern!

Nur falls es ein anderer liest, ähnlich kann man auch Key-Änderungen Speichern:
ssh -o "StrictHostKeyChecking no" <user>@<Zielrechner>

Aber bitte nur einmalig. Es gibt schon einen Security-Grund für dieses Key-Check.

Ach und nur um es zu Erwähnen: Ich gehe davon aus, das ein Passwortloser Login mit SSH-key, wie im Thread schon beschrieben, eingerichtet wurde.
- 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

cs-online

#35
Hallo Wernieman,

erstmal danke, dass du mir helfen magst ! Und ja, ich würde auch meinen, dass ich mich da nicht mit auskenne....

Ein
ssh -o "StrictHostKeyChecking=accept-new" pi@192.168.2.21

in die Kommandozeile (ich gehe mal davon aus, du meinst das Eingabefeld oben auf der FHEM-Seite) gibt den Fehler
Unknown command ssh, try help.

Und ja, ein Passwortloser Login mit SSH-key funktioniert nach der Anleitung von Otto, wenn ich den Befehl aus dem Notify da im Terminal absetze, dann funktioniert das ja ohne PW

Grüße

Christian

EDIT: Wenn ich das mit " in die KOmmandozeile eingebe, tut sich zwar was, aber ich bekomme folgende Einträge im Log:


Pseudo-terminal will not be allocated because stdin is not a terminal.
Failed to add the host to the list of known hosts (/opt/fhem/.ssh/known_hosts).
Load key "/opt/fhem/.ssh/id_rsa": Permission denied
Permission denied, please try again.
Permission denied, please try again.
pi@192.168.2.21: Permission denied (publickey,password).

.ssh und Inhalt habe ich schon auf 777 gesetzt....
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Wernieman

Zitat.ssh und Inhalt habe ich schon auf 777 gesetzt....

Und schon mal der erste "Fehler". Da in dem Ordner Sicherheitsrelevante Infos liegen, akzeptiert ssh dort nur beschrängtgen Zugriff, sonst wird es ignoriert. Wem gehört überhaupt der Ordner?
ls -lhad /var/opf/fhem/.ssh
ls -lha /var/opf/fhem/.ssh


Hinweis:
Beim ersten wird die Infos vom Ordner abgeholt (-d) und beim 2. der Inhalt vom Ordner .. wichtiger Unterschied ;o)

Und ja .. ich hatte die "" vergessen ....
- 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

cs-online

das ergibt
pi@raspberrypi:~ $ ls -lhad /opt/fhem/.ssh
drwxrwxrwx 2 fhem dialout 4,0K Mai 26 17:12 /opt/fhem/.ssh
pi@raspberrypi:~ $


und

pi@raspberrypi:~ $ ls -lha /opt/fhem/.ssh
insgesamt 32K
drwxrwxrwx  2 fhem dialout 4,0K Mai 26 17:12 .
drwxrwxrwx 20 fhem dialout 4,0K Mai 27 14:10 ..
-rw-------  1 pi   pi       792 Nov 28  2020 authorized_keys
-rw-------  1 pi   pi      1,8K Nov 28  2020 id_rsa
-rwxrwxrwx  1 pi   pi       396 Nov 28  2020 id_rsa.pub
-rw-------  1 pi   pi       884 Mai 26 16:52 known_hosts
-rw-r--r--  1 pi   pi       222 Mai 26 16:04 known_hosts-alt
-rw-r--r--  1 pi   pi         0 Mai 26 16:28 known_hosts-alt-alt
-rwxrwxrwx  1 pi   pi       222 Mai 26 16:43 known_hosts.old
pi@raspberrypi:~ $
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

cs-online

#38
...und da steckte der Hase dann auch im Pfeffer, ein

sudo chown -R fhem *


im Verzeichnis .ssh hat es gebracht. Danke dir für die Unterstützung, ohne die Tipps hätt ich das nicht hinbekommen :-)

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Wernieman

Allerdings gibt es noch eine Verbesserung:
sudo chown -R fhem: /opt/fhem/.ssh

Normalerweise kommt nach dem ":" die zu setzende Gruppe, wenn die Angabe fehlt, wird die Default-Gruppe des Users genommen (und  nein, die ist normalerweise nicht "dialout"!).
- 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

cs-online

danke dir für den Hinweis, ich muss mich da wirklich mal dransetzen und verstehen, wie das mit den ganzen komplexen Rechten in Linux funktioniert  :)

Bis dahin erst einmal ganz lieben Dank für die Unterstützung

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Wernieman

Eigentlich ist es einfacher (da älter) als Windows-Rechte. Da bei Windows man aber meistens die Trennung Nutzer/Dienste nicht hat .....
- 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