Autor Thema: SYSMON local funktioniert aber per ssh auf anderen pi nicht  (Gelesen 420 mal)

Offline hdosw

  • New Member
  • *
  • Beiträge: 14
Hallo,
ich habe FHEM auf einem raspberry pi 4 laufen und lass mir per SYSMON bestimmte Parameter wie z.B. cpu_temp anzeigen.
Leider bekomme ich das auf einem zweiten raspberry, auf dem kein fhem installiert ist, nicht hin.

Per ssh kann ich vom fhem-rechner alles auf dem Remote-rechner abfragen. In fhem bekomme ich im log immer dies:

2021.08.29 13:25:39 1: PERL WARNING: Use of uninitialized value $free_version in substitution (s///) at ./FHEM/42_SYSMON.pm line 2290.
2021.08.29 13:25:39 1: PERL WARNING: Use of uninitialized value $free_version in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2291.
pi@radio: Permission denied (publickey).
pi@radio: Permission denied (publickey).
pi@radio: Permission denied (publickey).

Wenn ich auf dem fhem-rechner per shell diese Kommando

ssh -p x pi@radio 'vcgencmd measure_temp'

aufrufe bekomme ich diese Meldung:

temp=37.4'C

(x = der port den ich definiert habe.)

Was kann ich tun, dass mir die gleichen Readings kommen wie beim lokalen Rechner (MODE:local)?





Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 10938
  • NIVEAu ist keine Creme...
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #1 am: 29 August 2021, 15:14:28 »
Wenn ich auf dem fhem-rechner per shell diese Kommando

ssh -p x pi@radio 'vcgencmd measure_temp'

aufrufe bekomme ich diese Meldung:

temp=37.4'C

Als WELCHER User führst du das aus?

Als User fhem oder als User pi?

Poste doch mal den kompletten Shell inkl. Prompt wenn du das Kommando auf der Shell ausführst...

Oder teste das Kommando mal in FHEMWeb:

"ssh -p x pi@radio 'vcgencmd measure_temp'"

INKL.!! der doppelten Anführungszeichen VORNE und HINTEN!

EDIT: und poste doch mal ein list des SYSMON-Devices. Da musst du ja remote-User usw. im DEF angeben. Kenne nur Module wo sowas mittels Attribut (sshHost etc.) eingestellt wird...

Gruß, Joachim
« Letzte Änderung: 29 August 2021, 15:18:35 von MadMax-FHEM »
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 RaspiOS (Test)

Offline hdosw

  • New Member
  • *
  • Beiträge: 14
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #2 am: 29 August 2021, 16:55:44 »
Hallo Joachim,

danke für die schnelle Antwort  :)
Das Kommando führe ich als user pi aus.
Im FHEMWeb passiert nichts bei der Ausführung mit Anführungszeichen.
Das list sieht so aus:
Internals:
   CFGFN     
   DEF        ssh:pi@radio:x
   FUUID      612b68f7-f33f-ca7b-7945-ae3526fe08f3dffd
   HOST       radio
   INTERVAL_BASE 60
   INTERVAL_MULTIPLIERS 1 1 1 10
   MODE       ssh
   NAME       radio
   NR         3015
   PORT       x
   STATE      <hr><div style="text-align: left;"><font style="font-weight:bold;color:red;">radio last check => 29.08. 16:46</font><br>Laufzeit : <span style="margin-left: 95px;">-</span><br>Speicherauslatung : <span style="margin-left: 10px;">n/a</span><br>CPU-Temperatur : <span style="margin-left: 25px;"><font style="font-weight:bold;color:green;">0.0 °C</font></span>&nbsp<hr>fhem aktiv seit : <span style="margin-left: 45px;">-<hr></span>
   TYPE       SYSMON
   USER       pi
   .attraggr:
   .attreour:
     cpu_temp
     cpu_temp_avg
     cpu_freq
     eth0_diff
     loadavg
     ram
     fs_.*
   .attrminint:
   READINGS:
     2021-08-29 16:46:44   cpu_core_count  1
     2021-08-29 16:46:44   eth0            not available
     2021-08-29 16:46:44   eth0_diff       not available
     2021-08-29 16:46:44   ram             n/a
     2021-08-29 16:40:44   root            Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)
     2021-08-29 16:46:44   swap            n/a
     2021-08-29 16:46:44   wlan0           not available
     2021-08-29 16:46:44   wlan0_diff      not available
   helper:
     proc_fs    0
     sys_cpu0_freq 0
     sys_cpu0_temp 0
     sys_cpu1_freq 0
     sys_cpu1_temp 0
     sys_cpu2_freq 0
     sys_cpu2_temp 0
     sys_cpu3_freq 0
     sys_cpu3_temp 0
     sys_cpu4_freq 0
     sys_cpu4_temp 0
     sys_cpu5_freq 0
     sys_cpu5_temp 0
     sys_cpu6_freq 0
     sys_cpu6_temp 0
     sys_cpu7_freq 0
     sys_cpu7_temp 0
     sys_cpu_core_num 1
     sys_cpu_freq_rpi_bbb 0
     sys_cpu_num 0
     sys_cpu_temp_bbb 0
     sys_cpu_temp_rpi 0
     sys_fb     0
     sys_power_ac 0
     sys_power_bat 0
     sys_power_usb 0
     u_first_mark 1
     cur_readings_map:
       cpu0_idle_stat CPU0 min/max/avg (idle)
       cpu1_idle_stat CPU1 min/max/avg (idle)
       cpu2_idle_stat CPU2 min/max/avg (idle)
       cpu3_idle_stat CPU3 min/max/avg (idle)
       cpu4_idle_stat CPU4 min/max/avg (idle)
       cpu5_idle_stat CPU5 min/max/avg (idle)
       cpu6_idle_stat CPU6 min/max/avg (idle)
       cpu7_idle_stat CPU7 min/max/avg (idle)
       cpu_bogomips BogoMIPS
       cpu_core_count Number of CPU cores
       cpu_idle_stat CPU min/max/avg (idle)
       cpu_model_name CPU model name
       date       Date
       eth0       Network adapter eth0
       eth0_diff  Network adapter eth0 (diff)
       eth0_ip    Network adapter eth0 (IP)
       eth0_ip6   Network adapter eth0 (IP6)
       eth0_rx    Network adapter eth0 (RX)
       eth0_speed Network adapter eth0 (speed)
       eth0_tx    Network adapter eth0 (TX)
       fhemstarttime Fhem start time
       fhemstarttime_text Fhem start time
       fhemuptime System up time
       fhemuptime_text FHEM up time
       idletime   Idle time
       idletime_text Idle time
       io_sda     TEST
       io_sda_diff TEST
       io_sda_raw TEST
       loadavg    Load average
       loadavg_1  Load average 1
       loadavg_15 Load average 15
       loadavg_5  Load average 5
       ram        RAM
       ram_free   RAM free
       ram_free_percent RAM free %
       ram_total  RAM total
       ram_used   RAM used
       ram_used_stat RAM used stat
       root       Filesystem /
       starttime  System start time
       starttime_text System start time
       stat_cpu   CPU statistics
       stat_cpu0  CPU0 statistics
       stat_cpu0_diff CPU0 statistics (diff)
       stat_cpu0_percent CPU0 statistics (diff, percent)
       stat_cpu0_text CPU0 statistics (text)
       stat_cpu1  CPU1 statistics
       stat_cpu1_diff CPU1 statistics (diff)
       stat_cpu1_percent CPU1 statistics (diff, percent)
       stat_cpu1_text CPU1 statistics (text)
       stat_cpu2  CPU2 statistics
       stat_cpu2_diff CPU2 statistics (diff)
       stat_cpu2_percent CPU2 statistics (diff, percent)
       stat_cpu2_text CPU2 statistics (text)
       stat_cpu3  CPU3 statistics
       stat_cpu3_diff CPU3 statistics (diff)
       stat_cpu3_percent CPU3 statistics (diff, percent)
       stat_cpu3_text CPU3 statistics (text)
       stat_cpu4  CPU4 statistics
       stat_cpu4_diff CPU4 statistics (diff)
       stat_cpu4_percent CPU4 statistics (diff, percent)
       stat_cpu4_text CPU4 statistics (text)
       stat_cpu5  CPU5 statistics
       stat_cpu5_diff CPU5 statistics (diff)
       stat_cpu5_percent CPU5 statistics (diff, percent)
       stat_cpu5_text CPU5 statistics (text)
       stat_cpu6  CPU6 statistics
       stat_cpu6_diff CPU6 statistics (diff)
       stat_cpu6_percent CPU6 statistics (diff, percent)
       stat_cpu6_text CPU6 statistics (text)
       stat_cpu7  CPU7 statistics
       stat_cpu7_diff CPU7 statistics (diff)
       stat_cpu7_percent CPU7 statistics (diff, percent)
       stat_cpu7_text CPU7 statistics (text)
       stat_cpu_diff CPU statistics (diff)
       stat_cpu_idle_percent CPU statistics idle %
       stat_cpu_io_percent CPU statistics io %
       stat_cpu_irq_percent CPU statistics irq %
       stat_cpu_nice_percent CPU statistics nice %
       stat_cpu_percent CPU statistics (diff, percent)
       stat_cpu_sirq_percent CPU statistics sirq %
       stat_cpu_sys_percent CPU statistics sys %
       stat_cpu_text CPU statistics (text)
       stat_cpu_user_percent CPU statistics user %
       swap       swap
       swap_free  swap free
       swap_total swap total
       swap_used  swap used
       swap_used_percent swap used %
       swap_used_stat swap used stat
       uptime     System up time
       uptime_text System up time
       wlan0      Network adapter wlan0
       wlan0_diff Network adapter wlan0 (diff)
       wlan0_ip   Network adapter wlan0 (IP)
       wlan0_ip6  Network adapter wlan0 (IP6)
       wlan0_rx   Network adapter wlan0 (RX)
       wlan0_speed Network adapter wlan0 (speed)
       wlan0_tx   Network adapter wlan0 (TX)
     excludes:
     shadow_map:
       cpu_core_count 1
       eth0       not available
       eth0_diff  not available
       ram        n/a
       root       Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)
       swap       n/a
       wlan0      not available
       wlan0_diff not available
Attributes:
   event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*
   group      IT
   room       IT
   stateFormat { my $ret = "<hr><div style=\"text-align: left;\">";
        $ret .= "<font style=\"font-weight:bold;color:red;\">";
$ret .= "radio last check => ";
$ret .= POSIX::strftime("%d.%m. %H:%M",localtime);
        $ret .= "<\/font><br>Laufzeit : <span style=\"margin-left: 95px;\">";
        $ret .= ReadingsVal("radio","uptime_text","-");
        $ret .= "<\/span>";
        $ret .= "<br>Speicherauslatung : <span style=\"margin-left: 10px;\">";
        $ret .= ReadingsVal("radio","ram","-");
        $ret .= "<\/span>";
$ret .= "<br>CPU-Temperatur : <span style=\"margin-left: 25px;\">";
        $ret .= "<font style=\"font-weight:bold;color:";
        if (ReadingsNum("radio","cpu_temp",0) < 40) {
            $ret .= "green";
        } elsif (ReadingsNum("radio","cpu_temp",0) < 50) {
            $ret .= "blue";
        } else {
            $ret .= "red";
        }
        $ret .= ";\">".sprintf("%.1f", ReadingsNum("radio","cpu_temp",0))." °C";
        $ret .= "</font></span>&nbsp";
        $ret .= "<hr>fhem aktiv seit : <span style=\"margin-left: 45px;\">";
        $ret .= ReadingsVal("radio","fhemuptime_text","-");
        $ret .= "<hr><\/span>";
}

Was ich jetzt festgestellt habe ist wenn ich das Kommando mit sudo ausführe kommt die gleiche Meldung wie im logfile nähmlich
pi@radio: Permission denied (publickey).
folglich habe ich ein Rechte Problem. Unter welchem user setzt denn SYSMON das kommando ab?

Gruß, Dieter

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 10938
  • NIVEAu ist keine Creme...
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #3 am: 29 August 2021, 17:20:40 »
Steht denn was im fhem-Log, wenn du es in FHEMWeb ausführst?

Also (dachte ich mir schon):

du hast passwortlosen Zugang als User pi (lokal) eingerichtet, um als User pi (remote) einloggen zu können (ohne Passwort).

Du musst das aber für den User fhem einrichten...

Also dass User fhem (lokal) als User pi (remote) OHNE Passwort einloggen und Kommandos ausführen darf...

Wenn du "sudo" davor stellst, wird das Kommando als "root" (ungleich User pi) ausgeführt, ergo geht es nat. damit auch nicht, weil eben nur der User pi remote ohne Passwort darf (aktuell)...

Gruß, Joachim
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 RaspiOS (Test)

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 19508
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #4 am: 29 August 2021, 17:52:50 »
Hi,

vielleicht hilft meine Beschreibung?
https://heinz-otto.blogspot.com/2020/09/ssh-mit-public-key.html

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline hdosw

  • New Member
  • *
  • Beiträge: 14
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #5 am: 29 August 2021, 18:27:31 »
ja dann steht da wieder permission denied  >:(

ich hab jetzt auf dem fernen pi einen user fhem eingerichtet den ich per ssh ohne Kennwort erreichen kann aber es geht trotzdem nicht.
Das mit sudo sollte nur ein Hinweis sein. Dass es damit nicht funktioniert war mir eigentlich klar.

Ich habe das device jetzt wieder gelöscht und werde mich nach anderen Möglichkeiten umsehen.

Vielen Dank für Deine Mühe.

Gruß, Dieter

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 10938
  • NIVEAu ist keine Creme...
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #6 am: 29 August 2021, 18:40:47 »
Ein User fhem auf dem remote System hilft nicht (hast du ja gemerkt).

Also es ist so:

ein User A auf System A (hier fhem auf dem fhem-Rechner) will sich als User B auf System B einloggen OHNE PW (dabei kann der NAME des Users B auf System B durchaus DERSELBE sein, also auch fhem ABER: es ist Trotzdem ein ANDERER User, nämlich einmal fhem@SystemA und einmal fhem@SystemB und die heißen zwar gleich sind aber komplett andere User ;)  )

Damit das ohne PW geht braucht User A auf System A Schlüssel, die vom System B (für User B) gültig sind.
Die liegen normalerweise:

/HomeUser/.ssh

D.h. für den User pi eben unter: /home/pi/.ssh
Für den User fhem aber unter: /opt/fhem/.ssh

D.h. wenn du lokal (System A) als User pi unterwegs bist, dann klappt das, weil eben die Schlüssel unter /home/pi/.ssh passen
Als User fhem (lokal) hast du vermutlich gar keine Schlüssel unter /opt/fhem/.ssh und selbst wenn, dann sind diese eben auf dem remote System (System B) "unbekannt"...

Heißt du brauchst entweder generell noch Schlüssel für den User fhem lokal (/opt/fhem/.ssh) oder die die da sind müssen eben auch auf dem remote System (für einen Login als DORTIGER User B / pi) "gültig" sein/gemacht werden...

EDIT: genau das wird eben in der verlinkten Anleitung beschrieben... 8)

EDIT:
ja dann steht da wieder permission denied  >:(
ich nehme an wenn du ins fhem Log schaust? Ja ist klar, das Kommando mit den " " in FHEMWeb wird ja als User fhem ausgeführt. Damit eben gleiches Ergebnis. War nur ein "double-check" (sorry)...

EDIT:
fhem@SystemA -> ssh pi@SystemB
Statt Passwort nimmt fhem@SystemA eben die Schlüssel in /opt/fhem/.ssh (sofern vorhanden) und reicht die an SystemB weiter mit der Bitte um Prüfung, ob damit eben pi@SystemB eingelogged werden darf.
D.h. auf SystemB wird geprüft, ob die Schlüssel für pi@SystemB gültig sind.
(gleiches wie PW-Prüfung)
Sind sie gültig, dann ist fhem@SystemA eingelogged als pi@SystemB und kann dort eben alles was der User pi (pi@SystemB) eben so darf... Bzw. wird eben jedes ssh-Kommando auf dem SystemB als pi@SystemB ausgeführt...

Ist für fhem@SystemA kein Schlüssel da (/opt/fhem/.ssh) ODER die Prüfung "ungültig" (gleiches wie wenn du ein falsches PW eingibst und das ist ja auch das PW des Users pi@SystemB [auch wenn es gleich ist aber es wird trotzdem auf SystemB geprüft ;)  ]) dann darfst du auf SystemB halt auch nix ;)

Gruß, Joachim
« Letzte Änderung: 29 August 2021, 19:02:09 von MadMax-FHEM »
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 RaspiOS (Test)

Offline hdosw

  • New Member
  • *
  • Beiträge: 14
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #7 am: 29 August 2021, 18:56:51 »
aber ich gebe doch bei der definition

define sysmon SYSMON ssh:USER@HOST:PORT

an und damit ist doch der User auf dem entfernten System bekannt und damit sollte es doch funktionieren.
Warum geht das auf der Shell und in fhem nicht?
Ich habe auf beiden Rechnern mehrere Benutzer eingerichtet welche ich alle per ssh erreichen kann,
egal welcher Benutzer der Client und welcher der Server ist. Linux ist mir durchaus bekannt, fhem nicht.


Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 19508
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #8 am: 29 August 2021, 19:33:41 »
...
Warum geht das auf der Shell und in fhem nicht?
...
Linux ist mir durchaus bekannt, fhem nicht.
Weil FHEM unter dem Benutzer fhem läuft und Du eine Shell/Umgebung für User fhem öffnen musst. Meine Beschreibung versucht zu lesen?
Geht z.B. mit
sudo -su fhemAber an was Du scheiters ist ein reines Linux Problem und hat mit FHEM nichts zu tun.
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline hdosw

  • New Member
  • *
  • Beiträge: 14
Antw:SYSMON local funktioniert aber per ssh auf anderen pi nicht
« Antwort #9 am: 30 August 2021, 12:57:17 »
Hallo Otto,
es läuft jetzt wie gewünscht  :) dank Deiner Anleitung. Ich danke Dir ganz herzlich dafür.
Der Befehl sudo -su hat mich auf die Spur gebracht. Alles andere kannte ich bereits.
Danke auch an Joachim.

Gruß, Dieter
Gefällt mir Gefällt mir x 1 Liste anzeigen