Moin moin,
bin mal wieder auf der suche nach Hilfe. Folgendes Vorhaben:
Fhem soll an den/die VDR im Haus Nachrichten absetzen. Vom Computer sende ich (nach erfolgreicher Anmeldung)
svdrpsend MESG Hallo via SSH. Danach erscheint die Meldung am TV. Die Frage ist nun wie packe ich das in Fhem. Ich habe ähnliches bereits mit Telnet gemacht über die 99_myUtils . Wie jedoch sieht das ganze für SSH aus? Und wie gebe ich das Kennwort mit?
Grüße
ostseehuepfer
Entweder Zertifikat oder sshpass (ist ein Programm)
Zertifikat vorrausgesetzt benutze ich diese Funktion hier:
##########################################################
# SSH Funktion
##########################################################
sub ssh_cmd($$@) {
my($host,$cmd,$user) = @_;
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;
}
Aufruf in FHEM:
ssh_cmd("<HOSTNAME>",'>CMD>',"<USERNAME>");
Moin,
wenn ich das zertifikat verwende muss ich dann extra einen User anlegen auf der Maschine?
Du erstellt unter deinem FHEM User einen Key mit ssh-keygen -t rsa
. Danach die Datei unter ~/.ssh/id_rsa.pub auf den zu steuernden Rechner
in der Datei ~/.ssh/authorized_keys eintragen. Wenn nicht vorhanden einfach die Datei erstellen.
Achte auf die Rechte, es sollten nur Owner-Rechte gesetzt sein! (chmod -R 700 ~/.ssh).
Ok und wie mache ich das auf dem Raspberry das ganze als Fhem erstellen? melde mich da via SSH (Putty) als root an..