FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mi.ke am 23 Februar 2015, 18:43:00

Titel: (GELÖST) Probleme bei der SSH Verbindung
Beitrag von: mi.ke am 23 Februar 2015, 18:43:00
Guten Tach,

ich bräuchte mal wieder Hilfe . . . .

Ausgangssituation:
Ich möchte via SSH von einem RPI einen Befehl auf einen Cubie absetzen.
Über die normale Console klappt das auch.
Auf beiden Rechnern ist FHEM installiert.

"ssh pi@192.168.1.2  sudo /sbin/reboot"

btw. ohne Passworteingabe (ssh-keygen)

Frage:
wie bekommt man das über FHEM gestartet?

Klappt weder über die Eingabe via DEF, noch über den Aufruf in der 99_myUtils.

Hatte mich eines Snippets von justme1968 bedient aus diesem Threat:
http://forum.fhem.de/index.php/topic,12791.msg77878.html#msg77878 (http://forum.fhem.de/index.php/topic,12791.msg77878.html#msg77878)

und zwar so:
sub ssh_cmd()
{
my $host = '192.168.1.2';
my $user = 'pi';
my $cmd = 'sudo /sbin/reboot';
my $ret;
  my $ssh = qx(which ssh);   
  chomp( $ssh );
  $ssh .= ' ';
  $ssh .= $user."\@" if( defined($user) );
  $ssh .= $host ." ". $cmd;
  if( open(my $fh, "$ssh|" ) ) {   
    $ret = <$fh>;
    close($fh);
  }
return $ret;
}



Einzige Fehlermeldung im LOG ist:
Host key verification failed.


Ich muss getehen, wirklich Ahnung hab ich nicht, ist alles nur aus dem Netz und dem Forum zusammengesucht.

Könnte mir jemand einen heissen Tip geben?

Cheers

mi.ke
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: Vertex am 23 Februar 2015, 18:51:25
Ich würde mal vermuten, dass die ssh Verbindung durch den fhem Nutzer aufgebaut wird, dieser auf dem cubie
aber nicht für eine passwortlose ssh Verbindung eingerichtet wurde.

Gruß
Vertex
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: Mitch am 23 Februar 2015, 19:04:48
Ich mache so etwas über das Modul RFHEM
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: nesges am 23 Februar 2015, 19:15:10
Du hast die Schlüssel vorher nicht ausgetauscht, schau mal hier: http://forum.fhem.de/index.php/topic,34146.msg264813.html#msg264813
Mit fhem hat das allerdings nichts zu tun.
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: mi.ke am 24 Februar 2015, 08:38:10
Zitat von: nesges am 23 Februar 2015, 19:15:10
Du hast die Schlüssel vorher nicht ausgetauscht, schau mal hier: http://forum.fhem.de/index.php/topic,34146.msg264813.html#msg264813 (http://forum.fhem.de/index.php/topic,34146.msg264813.html#msg264813)
Mit fhem hat das allerdings nichts zu tun.

Das verstehe ich gar nicht.
Wenn's nichts mit fhem zu tun hat und ohne Verwendung von fhem einwandfrei funktioniert..?!?!

Zitat von: Mitch am 23 Februar 2015, 19:04:48
Ich mache so etwas über das Modul RFHEM

Ich dachte, das die RFHEM Geschichte als Alleinmodul aufgegeben wurde. Aber ich werd's mir mal anschauen.
Trotzdem würde ich gern die SSH Problematik lösen (und verstehen).

Zitat von: Vertex am 23 Februar 2015, 18:51:25
Ich würde mal vermuten, dass die ssh Verbindung durch den fhem Nutzer aufgebaut wird, dieser auf dem cubie
aber nicht für eine passwortlose ssh Verbindung eingerichtet wurde.

Hatte ich auch schon vermutet.
Dagegen spricht, dass im Script, wie auch im Direktaufruf, der User "pi" mitgegeben wird.

Wie kann man sich denn mit dem User "fhem" anmelden.
Ich hab in der "passwd" den fhem-user schon mal am Ende der Zeile von "false" auf "bash" geändert, dann kommt immerhin lokal eine Abfrage des Passworts (das ich aber nicht kenne).

Ich hab auch schon versucht, das Verzeichnis .ssh von /home/pi nach /opt/fhem/.ssh zu kopieren, um den "pi" User verwenden zu können, geht aber auch nicht.
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: nesges am 24 Februar 2015, 10:45:59
Zitat von: mi.ke am 23 Februar 2015, 18:43:00
Host key verification failed.


Die Fehlermeldung bedeutet, dass der in ~/.ssh/known_hosts (des Users unter dem fhem läuft) gespeicherte Schlüssel des Zielrechners nicht mit dem tatsächlichen übereinstimmt. Dafür kann es verschiedene Gründe geben, google einfach mal die Fehlermeldung.

Auf der Konsole bekommst du beim Versuch dich anzumelden eine Warnung, die du mit "yes" bestätigen kannst. In dem Fall wird der neue Schlüssel in der known_hosts gespeichert. Da du diese Meldung offenbar nicht bekommst, machst du auf der Konsole etwas anders, als beim Aufruf aus fhem. Ich tippe darauf, dass du mit einem anderen User angemeldet bist. Wenn du das Passwort des fhem-Users nicht kennst, musst du es erfragen (sofern überhaupt eins gesetzt ist). Wenn du root auf der Maschine bist, musst du es nicht wissen (siehe "su -").

Das ganze hat nichts mit fhem zu tun, weil's ein ssh-Thema ist.
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: mi.ke am 25 Februar 2015, 12:47:07
Danke für die Erkärung.

Was ich trotzdem nicht verstehe...

...ich will mich ja gar nicht mit dem User fhem anmelden.
Sondern mit dem User pi

"ssh pi@192.168.1.2 sudo /sbin/reboot"
Genau so funktioniert es auf der Konsole perfekt.
(ich kann sogar den User weglassen, wenn ich mit dem User pi auf Rechner 1 angemeldet bin.)
Keine Passortabfrage, Befehl wir auf dem Remoterechner komentarlos ausgeführt.


jetzt gebe ich das exakt gleiche (auch User pi) in die commandozeile von FHEM ein.
Geht nicht.

Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: nesges am 25 Februar 2015, 13:00:27
Zitat von: mi.ke am 25 Februar 2015, 12:47:07
...ich will mich ja gar nicht mit dem User fhem anmelden.

Es geht um deine lokale Anmeldung. Unter welchem User läuft fhem? Dessen known_hosts wird benutzt.
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: mi.ke am 28 Februar 2015, 12:00:46
@nesges
vielen Dank für Deine Erklärungsversuche.

Mein Fazit für die Anmeldung aus der Anwendung FHEM remote per SSL an REMOTE:
F.) Ich will mich REMOTE nicht mit fhem anmeden, sondern mit pi
A.) geht nicht, weil die Anwendung FHEM schon local als fhem angemeldet ist

F.) Dann halt für fhem eine known_hosts erstellen und damit an REMOTE anmelden
A.) Geht nicht, weil a.) anmelden als User fhem nicht erlaubt
                            b.) fhem hat gar kein Passwort zur erstellen der known_host

Ich geb das Thema auf, das kostet mich zu viel Zeit und Nerven.
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: onkel-tobi am 28 Februar 2015, 15:45:07
Wenn es via Konsole klappt, spricht etwas dagegen es via system Aufruf {system("ssh pi@192.168.1.2 sudo /sbin/reboot")} zu machen?
Müsste ja dann prinzipiell gehen oder nicht?
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: fiedel am 01 März 2015, 09:32:09
Zitat
Ich muss getehen, wirklich Ahnung hab ich nicht, ist alles nur aus dem Netz und dem Forum zusammengesucht.

Dann sollte es doch per FHEM2FHEM gehen? Im Cubie ein Notify definiert, welches per "system"- Befehl deine Aktion ausführt und dieses Notify vom Raspi aus antriggern.

Gruß

Frank
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: mi.ke am 01 März 2015, 14:00:56
Zitat von: onkel-tobi am 28 Februar 2015, 15:45:07
Wenn es via Konsole klappt, spricht etwas dagegen es via system Aufruf {system("ssh pi@192.168.1.2 sudo /sbin/reboot")} zu machen?
Müsste ja dann prinzipiell gehen oder nicht?

geht nicht, wie vorher beschrieben.

Zitat von: fiedel am 01 März 2015, 09:32:09
Dann sollte es doch per FHEM2FHEM gehen? Im Cubie ein Notify definiert, welches per "system"- Befehl deine Aktion ausführt und dieses Notify vom Raspi aus antriggern.

Kann nicht funktiuonieren, da ich den Cubie ja neu starten will, wenn|weil FHEM nicht mehr erreichbar ist.
Titel: Antw:Probleme bei der SSH Verbindung
Beitrag von: mi.ke am 02 März 2015, 02:59:29
Also, wie immer .  . .so lange rumprobieren, bis es irgendwann geht.
Frisst halt Stunden um Stunden, und Tag um Tag.

Wenn man halt nicht weiss, was man tut! :'(

Ich hab so viel ausprobiert, dass ich das bestimmt nicht mehr zusammenfassen kann.
Aber ich werde es gern versuchen:

Der Knackpunkt ist der User fhem !

1.)  die Datei /etc/passwd in der Zeile fhem von "false" auf "bash" geändert.
sudo nano /etc/passwd
fhem:x:999:20::/opt/fhem:/bin/bash

2.)  mit dem Befehl passwd ein Password für fhem vergeben
sudo passwd fhem

3.) als fhem anmelden an Rechner LOCAL

4.) ssh-keygen -t rsa   

5.) Die Dateien im Verzeichnis .ssh werden im fhem-Ordner erzeugt
     /opt/fhem/.ssh/id_rsa.pub in /opt/fhem/.ssh/authorized_keys kopieren

6.) ein Verzeichnis /opt/fhem/.ssh/ auf dem REMOTE erstellen und dort die authorized_keys hinein kopieren.

7.) Wichtig. Jetzt wieder am LOCAL ssh REMOTE eingeben.
Es wird eine Datei known_hosts erzeugt. Hierbei KEIN Passwort eingeben.

8.) Testen, ob ein Login mit Eingabe von ssh REMOTE am Locale ohne Passwort eingabe funktioniert.

9.) Damit der reboot auch funktioniert, muss nun noch am REMOTE mit dem Befehle visudo IN DER LETZTEN Zeile fhem ALL=(ALL) NOPASSWD: /sbin/reboot eingegeben werden.

Fertsch

Aber wie bei den LOTTOzahlen . . . .ohne Gewähr!

Cheers

mi.ke

PS.
Achso...   Aufruf erfolgt dann am LOCAL z.B. per Dummy

define CubieReset dummy
define CubieReset_n notify CubieReset "ssh 192.168.1.2 sudo /sbin/reboot"

*Editiert -  Ergänzung alles nach PS*