SSH über FHEM funktioniert nicht (mehr) nach Migration

Begonnen von m8ichael, 03 November 2019, 09:20:26

Vorheriges Thema - Nächstes Thema

m8ichael

Hallo allerseits,

ich stehe gerade irgendwie auf dem Schlauch: Für meine Anwesenheitserkennung frage ich regelmäßig die ARP-Tabelle in meinem Netzwerkrouter ab. Wenn dort bestimmte Geräte eingeloggt sind, dann wird dies als Anwesenheit interpretiert. Die Abfrage erfolgt per SSH mittels des folgenden Scripts:


use Net::SSH2;

...

sub SSH_Einlesen() {
my $buf;
my $tim=time();
my $ssh2 = Net::SSH2->new(trace => -1 );
$ssh2->connect('10.20.1.5') or die "Unable to connect Host $@ \n";
$ssh2->auth_password('admin','<Passwort>') or die "Unable to login $@ \n";

my $chan = $ssh2->channel();
$chan->blocking(0);
$chan->shell();
$buf=$buf.$_ while <$chan>;

$chan->write("ip arp status\n");


$buf=$buf.$_ while <$chan>;

if ($buf) {
$buf =~ s/\r/ /;
$buf =~ s/\n/ /;
fhem("setreading dm.ssh_read arp ".$buf);
fhem("setreading dm.ssh_read Status Ok");
}

...


Das funktionierte bisher auch sehr gut. Ich habe nun meine FHEM-Installation auf einen neuen RaspberryPi4 migriert und jetzt funktioniert das Script nicht mehr. Das für Net::SSH2 erforderliche Paket libnet-ssh2-perl habe ich installiert, aber trotzdem passiert nichts (keine Fehlermeldung im Log, nichts...  :-[). Hat jemand einen Tipp?

Schon mal vielen Dank und viele Grüße!

Michael

Otto123

Moin Michael,

ich weiß nicht wie das mit der Perl Lib genau funktioniert. Aber normal gibt es bei ssh zwei "Eckpunkte":
known_hosts
authorized_keys

Hast Du Dich darum bei der Migration gekümmert?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

m8ichael

Moin Otto,

Zitat
ich weiß nicht wie das mit der Perl Lib genau funktioniert. Aber normal gibt es bei ssh zwei "Eckpunkte":
known_hosts
authorized_keys

Hast Du Dich darum bei der Migration gekümmert?

Nein, denn nach meiner Erinnerung fragt das Perl-Modul diese Dinge nicht ab. Hier läuft die Authorisierung klassisch per Nutzername/Passwort ab, ohne dass m. E. die Keys der Gegenseite überprüft werden (so zumindest meine Erinnerung, als ich das vor Jahren übernommen habe). Was mich halt stutzig macht ist, dass keinerlei Fehlermeldung geschmissen wird (z. B. gleich beim Verbindungsaufbau).

Viele Grüße

Michael

CoolTux

Das stimmt nicht ganz denke ich. Zu mindest eine einmalige Bestättigung des Maschinenkeys wird bestimmt erfolgen.
known_hosts

Mach diese Anmeldung als User fhem mal bitte einmalig auf der Konsole und bestättige des Hostkey.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

m8ichael

Hallo,

Zitat
Das stimmt nicht ganz denke ich. Zu mindest eine einmalige Bestättigung des Maschinenkeys wird bestimmt erfolgen.
known_hosts

Mach diese Anmeldung als User fhem mal bitte einmalig auf der Konsole und bestättige des Hostkey.

Das habe ich schon gemacht. Über die Konsole kann ich mit dem Nutzer fhem und per ssh auf den Router zugreifen. Ich habe mittlerweile das Gefühl, dass irgendwie das Modul Net::SSH2 nicht sauber installiert ist. So konnte fhem offenbar zumindest eben einmalig die Verbindung bis zur Konsole aufbauen. Der nachfolgende Befehl wurde jedoch nicht abgesetzt. Auch konnte ein erneuter Aufbau der Verbindung nicht erreicht werden. Ohne Fehler oder eine sonstige Meldung...  >:(

Gruß

Michael

CoolTux

Da hilft dann wohl nur mehr Debugausgaben ein zu bauen in Deinen Code würde ich sagen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Zitat von: m8ichael am 03 November 2019, 10:47:52
So konnte fhem offenbar zumindest eben einmalig die Verbindung bis zur Konsole aufbauen. Der nachfolgende Befehl wurde jedoch nicht abgesetzt. Auch konnte ein erneuter Aufbau der Verbindung nicht erreicht werden. Ohne Fehler oder eine sonstige Meldung...  >:(
Aus meiner Sicht hat das Perl Modul  und ssh auf Kommandozeile (das meinst Du mit Console?) gar nicht viel zu tun (außer sicher die keys in .ssh)
Du meinst jetzt: Du konntest nur einmal eine Verbindung machen? Dann liegt das Problem doch aber woanders?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz