OpenSSH+Callmonitor: Programme ausführen

steview_n1

Neuer User
Mitglied seit
8 Feb 2008
Beiträge
44
Punkte für Reaktionen
0
Punkte
0
Hi Leute,

vor ein paar Tagen habe ich nach dieser Anleitung ein shutdownscript "geschrieben" (windowsrechner) und auf die Fritz!Box (7390) geschmissen, welches seinen Job super erledigt.

Dann hatte ich die Idee, ein Script auf die Box zu packen, das ein verschlüsseltes Laufwerk mountet (mit TrueCrypt). Dafür wollte ich genauso einen Listener im Callmonitor einbauen und das Script per Handyanruf ausführen. Aber irgendwie klappt das ganze überhaupt nicht :-/

So sieht meine mount.sh auf der Box aus (befindet sich in /var/tmp/flash/ssh/ )
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected]
E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw

hier ist mein eingetragener Listener:
Code:
in:request ^0049152xxx ^034xxx HOME=/mod/root && /var/tmp/flash/ssh/mount.sh

Bei einem Testanruf kommt leider folgende Fehlermeldung:

Code:
[0:2] processing rule 'in:request' '^0049152xxx' '^034xxx' 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
[0:2] event 'in:request' matches pattern 'in:request'
[0:2] parameter SOURCE='0049152xxx' matches pattern '^0049152xxx'
[0:2] parameter DEST='034xxx' matches pattern '^034xxx'
[0:2] SUCCEEDED
[0:2] ACTION: 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
ssh: Failed reading termmodes
/var/tmp/flash/ssh/mount.sh: line 2: E:TrueCryptTrueCrypt.exe: not found
[0:2] listener failed with an exit status of 127


wie es aussieht muss da eine völlig andere syntax hin und er weiß nicht was er mit dem befehl anfangen soll. Oder ist die fritzbox vielleicht noch nicht zuende eingeloggt (über ssh - erste zeile) und der befehl schlägt deshalb fehl?

das OS ist windows xp sp3, gebe ich in cmd "E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw" ein dann klappt alles wunderbar.


Hat jemand ne Idee worans liegt und was ich alles falsch mache? ;-)


Gruß,
Alex
 
Zuletzt bearbeitet:
Aus "\" sollte auf jeden Fall "\\" werden, evtl tut es sogar ein "/" in dem Aufruf. -> shell-spezifika.
 
Danke für Eure Antworten!

mit von hand aufrufen ist es halt so eine sache. die putty shell funktioniert ja wiederum anders. bei putty klappt nur folgender aufruf:
Code:
start E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw
Man muss aber dazu sagen, dass das laufwerk nicht im windows explorer eingebunden wird, dennoch in truecrypt entschlüsselt wird - den inhalt kann man entweder so sehen und benutzen - klick - oder in cmd, da kann man nach D:\ wechseln. Beim selben Aufruf in der windowseigenen cmd taucht das laufwerk (D:) im explorer sofort auf. Wisst ihr womit das zusammenhängen kann?

Mit "start" im script in der zweiten Zeile kommt die Box gar nicht klar.

mount.sh:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected]
start E:\\TrueCrypt\\TrueCrypt.exe /q /lD /m rm /v "\\Device\\Harddisk1\\Partition1" /p meinpw

Testanruf danach:
Code:
[0:2] processing rule 'in:request' '^0049152xxx' '^034xxx' 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
[0:2] event 'in:request' matches pattern 'in:request'
[0:2] parameter SOURCE='0049152xxx' matches pattern '^0049152xxx'
[0:2] parameter DEST='034xxx' matches pattern '^034xxx'
[0:2] SUCCEEDED
[0:2] ACTION: 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
ssh: Failed reading termmodes
/var/tmp/flash/ssh/mount.sh: line 2: [B]start: not found[/B]
[0:2] listener failed with an exit status of 127


Und beim zweiten Versuch ohne "start" und mit "\\" statt "\" passiert was ganz merkwürdiges:

mount.sh:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected]
E:\\TrueCrypt\\TrueCrypt.exe /q /lD /m rm /v "\\Device\\Harddisk1\\Partition1" /p meinpw

Testanruf danach:
Code:
[0:2] processing rule 'in:request' '^0049152xxx' '^034xxx' 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
[0:2] event 'in:request' matches pattern 'in:request'
[0:2] parameter SOURCE='0049152xxx' matches pattern '^0049152xxx'
[0:2] parameter DEST='034xxx' matches pattern '^034xxx'
[0:2] SUCCEEDED
[0:2] ACTION: 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
ssh: Failed reading termmodes
/var/tmp/flash/ssh/mount.sh: line 2: [B]E:\TrueCrypt\TrueCrypt.exe: not found[/B]
[0:2] listener failed with an exit status of 127

Der Pfad steht also schon richtig da, aber er meint das Programm gibt es nicht.
buehmann sagte aber bereits dass es so mit den 2 zeilen nicht funktionieren kann und es liegt wahrscheinlich einfach daran, dass er gar nicht im windows eingeloggt ist o.Ä.

Wie kann ich das beheben? Soll ich den -T Schalter statt -i benutzen oder beides zusammen?

Gruß
 
Als erstes solltest Du mal erklären, was das Skript Deiner Meinung nach tut, und zwar genau.
Etwas mehr Mühe mit der Rechtschreibung wäre sinnvoll, udn eine exakte Schreibweise dessen, was ein Computer tun soll, ist absolut notwendig.
 
Und: Was sagt die Doku der entsprechenden Windows-Programme dazu? Denn irgendwie hört freetz doch wohl beim Callmonitor auf...
 
Hallo,
mit von hand aufrufen ist es halt so eine sache. die putty shell funktioniert ja wiederum anders.
ok, du hast es also überhaupt nicht getestet. Kein Wunder, dass es nicht funktioniert. Was ich meinte mit "von Hand testen": Auf der Fritzbox einloggen (dazu kannst du Putty benutzen) und dort auf der Kommandozeile dein Skript aufrufen.
Mit "start" im script in der zweiten Zeile kommt die Box gar nicht klar.
Das liegt nicht nur am "start", sondern an der zweiten Zeile. So wie du das Skript hingeschrieben hast, wird zunächst eine interaktive SSH-Sitzung zur Windows-Box aufgebaut (was fehlschlägt). Dann wird als nächstes versucht, auf der Fritzbox TrueCrypt.exe aufzurufen, was natürlich auch nicht funktionieren kann.

Ungetestet müsste dein Skript so aussehen:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'start E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw'
Probier das bitte von Hand auf der Fritzbox aus, bevor du es vom Callmonitor aus aufrufst.

Andreas
 
Hi Leute,

danke nochmal für Eure schnellen Antworten,
@buehmann: erst einmal danke für die Erklärung. Ich habe mich wohl falsch ausgedrückt, natürlich habe ich mich über Putty auf der fritz!box eingeloggt und dort den Befehl ausgeführt. Ich habe mir nur gedacht, dass die "Box" den Befehl anders ausführen würde als "Putty". Dies war aber eher ein Denkfehler. Wenn man sich auf der Box einloggt dann dürften die puttyspezifischen Eigenschaften keine Rolle mehr spielen, oder?


Leider habe ich im Moment nicht so viel Zeit aber ich versuche es auf jeden Fall heute Abend oder morgen zu testen und schreibe Euch auch was die einzelnen Truecrypt-Parameter bewirken sollen.


liebe Grüße
 
Und wir im Freetz-Unterforum brauchen unbedingt die Bedeutung von truecrypt-Windows-Parametern? Funktionieren die auf meiner Fritzbox, wenn ich freetz drauf habe dann?
 
Hi,

danke für Eure Hilfe und Erklärungen.

wenn ich es so von Hand eingebe:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'start E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw'
dann schafft die Box es nicht sich auf dem Rechner rechtzeitig einzuloggen, anscheinend:
Code:
/var/mod/root # ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'start E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw'

                            ****USAGE WARNING****

This is a private computer system. This computer system, including all
related equipment, networks, and network devices (specifically including
Internet access) are provided only for authorized use. This computer system
may be monitored for all lawful purposes, including to ensure that its use
is authorized, for management of the system, to facilitate protection against
unauthorized access, and to verify security procedures, survivability, and
operational security. Monitoring includes active attacks by authorized entities
to test or verify the security of this system. During monitoring, information
may be examined, recorded, copied and used for authorized purposes. All
information, including personal information, placed or sent over this system
may be monitored.

Use of this computer system, authorized or unauthorized, constitutes consent
to monitoring of this system. Unauthorized use may subject you to criminal
prosecution. Evidence of unauthorized use collected during monitoring may be
used for administrative, criminal, or other adverse action. Use of this system
constitutes consent to monitoring for these purposes.
start: not found
/var/mod/root #
(man sieht, dass Putty danach nicht auf dem Rechner ist)

wenn ich den o.g. Befehl gleich in meine mount.sh schreibe, dann kommt bei einem Testanruf folgendes raus:

Code:
[0:2] processing rule 'in:request' '^0049152xxx' '^034xxx' 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
[0:2] event 'in:request' matches pattern 'in:request'
[0:2] parameter SOURCE='0049152xxx' matches pattern '^0049152xxx'
[0:2] parameter DEST='034xxx' matches pattern '^034xxx'
[0:2] SUCCEEDED
[0:2] ACTION: 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
/var/tmp/flash/ssh/rsakey_box: line 0: can't access tty; job control turned off


BusyBox v1.16.1 (2010-06-17 14:39:45 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/var/tmp/flash/ssh/rsakey_box: line 1: syntax error: unexpected ")"
[0:2] listener failed with an exit status of 2


was die Truecrypt-Parameter angeht, so hab ich es von RalfFriedl so verstanden, dass es hilfreich wäre zu wissen. Wenn ihr nur wissen wolltet, wie ich mir die Funktionsweise von diesem Skript an sich vorstelle:
1. Die Fritz!Box loggt sich auf dem Rechner ein
2. Das Programm mit den dazugehörigen Parametern wird gestartet und erledigt seinen Job (Die Festplattenpartition wird entschlüsselt und ins Windowsdateisystem eingebunden)




Gruß,
Alex
 
Hallo,
dann schafft die Box es nicht sich auf dem Rechner rechtzeitig einzuloggen, anscheinend
"rechtzeitig"? Da gibt es kein "rechtzeitig": Entweder funktioniert der Login oder er funktioniert nicht. Da du nach der Begrüßung folgende Meldung bekommst, darfst du davon ausgehen, dass er funktioniert hat:
Code:
start: not found
Dieser eindeutigen Fehlermeldung solltest du nachgehen.

Und wieso eigentlich "anscheinend"? Probier doch erst mal den Login aus, ohne TrueCrypt aufrufen zu wollen. Immer schön Schritt für Schritt ...

Viele Grüße,

Andreas
 
(man sieht, dass Putty danach nicht auf dem Rechner ist)

wenn ich den o.g. Befehl gleich in meine mount.sh schreibe, dann kommt bei einem Testanruf folgendes raus:

Wo kommt denn da Putty mit ins Spiel?
Und solange der Befehl allein nicht funktioniert, wird es mit einem Skript auch nicht besser werden.
 
Hi,


ich bin jetzt ein bisschen weitergekommen.
Wenn ich mich zuerst über Putty auf den Rechner einlogge
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected]
(der Login funktioniert also wunderbar)
und diese Zeile eingebe
Code:
start E:\\TrueCrypt\\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw
dann wird das Laufwerk entschlüsselt!

Wenn ich es in den Skript so schreibe
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'start E:\\TrueCrypt\\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p meinpw'
und dann einen Testanruf mache, bekomme ich zwar eine Erfolgsmeldung vom Callmonitor:
Code:
[0:2] processing rule 'in:request' '^0049152xxx' '^034xxx' 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
[0:2] event 'in:request' matches pattern 'in:request'
[0:2] parameter SOURCE='0049152xxx' matches pattern '^0049152xxx'
[0:2] parameter DEST='034xxx' matches pattern '^034xxx'
[0:2] SUCCEEDED
[0:2] ACTION: 'HOME=/mod/root && /var/tmp/flash/ssh/mount.sh'
aber es passiert nichts. Truecrypt wird auch gar nicht gestartet (Taskmanager - Prozesse).



Das ganze lässt sich auch mit jedem anderen Programm reproduzieren, z.B. mit foobar2000 (Audioplayer):

Code:
start E:\\foobar2000\\foobar2000.exe
in Putty von Hand eingegeben - klappt wunderbar.

Als Skript:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'start E:\\foobar2000\\foobar2000.exe'
wieder dasselbe: Callmonitor beschwert sich nicht aber es passiert nichts.


Jemand eine Idee?

Gruß,
Alex
 
Zuletzt bearbeitet:
Du redest hier andauernd von Putty. Du loggst dich doch von der FBox mit ssh auf dem Rechner ein und nicht per Putty? Du machst das höchstens im Putty Fenster am Rechner!?

MfG Oliver
 
Ja ich meine auf jeden Fall nur das Puttyfenster. Ich bin vom Rechner über Putty auf der Fritzbox eingeloggt und logge mich "von der Box aus" auf den Rechner ein.


//Nachtrag


Eine merkwürdige Sache ist mir noch aufgefallen. Vielleicht ist es für den einen oder den anderen hilfreich:

Das Ausführen von Programmen, die auf C:\Windows liegen, klappt mehr oder weniger. Damit meine ich das Ausführen über Anruf/Testanruf. Über das Puttyfenster, von Hand eingegeben, klappt auch das Ausführen anderer Programme, die u.a. auf anderen Partitionen/Festplatten installiert sind (siehe mein vorletztes Posting).

hier die notepad.exe als Beispiel:
im skript.sh steht folgendes:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'notepad.exe'
(man beachte, ohne "start" vor notepad.exe, mit "start" passiert nichts.)

dann passiert beim Testanruf über das Webinterface folgendes:
notepad.exe wird tatsächlich gestartet (nur im Hintergrund, unter Taskmanager - Prozesse zu sehen). Das Browserfenster mit der Ausgabe von Callmonitor-Testanruf hängt sich auf. Ich beende die notepad.exe im Taskmanager und siehe da - die Ausgabe vom Testanruf im Firefox hängt nicht mehr und ich bekomme eine Erfolgsmeldung à la:
Code:
[0:2] processing rule 'in:request' '^0049152xxx' '^034xxx' 'HOME=/mod/root && /var/tmp/flash/ssh/skript.sh'
[0:2] event 'in:request' matches pattern 'in:request'
[0:2] parameter SOURCE='0049152xxx' matches pattern '^0049152xxx'
[0:2] parameter DEST='034xxx' matches pattern '^034xxx'
[0:2] SUCCEEDED
[0:2] ACTION: 'HOME=/mod/root && /var/tmp/flash/ssh/skript.sh'

und wie gesagt, wenn ich das Skript mit "start" vervollständige
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'start notepad.exe'
dann:
1. Es startet keine notepad.exe
2. Kein Hänger von Callmonitor-Webif
3. Erfolgsmeldung von Callmonitor (haargenau genau so wie oben, nach Beenden der notepad.exe)



Wenn ich ein xbeliebiges Programm von einer anderen Partition nehme, wie z.B. foobar2000, dann:
1. Es ist egal wie ich den Pfad im Skript angebe, E:\foobar2000\foobar2000.exe, E:\\foobar2000\\foobar2000.exe, E:\\\\foobar2000\\\\foobar2000.exe, mit start oder ohne
2. Das Programm startet nicht.
3. In jedem Fall eine Erfolgsmeldung von Callmonitor.

zur Erinnerung: beim von Hand Eingeben im Puttyfenster klappt nur folgender Aufruf:
Code:
start E:\\foobar2000\\foobar2000.exe
also nur mit "start" und \\.
Ohne "start" vor dem eigentlich Befehl taucht die .exe zwar auch unter Prozessen auf, allerdings läuft das Programm nicht.

Bitte um Vorschläge :]

Gruß,
Alex
 
Zuletzt bearbeitet:
Ich könnte glatt meinen Beitrag #13 wiederholen, beide Punkte.
Sogar nach dem Beitrag von Oliver sprichst Du immer noch von Putty.
Wenn Du Dich mit falschen Begriffen verwirren willst, ist das Deine Sache. Wenn Du uns auf die falsche Fährte locken willst, dann schau doch selbst, wie Du weiter kommst.
 
@RalfFriedl
ich habe extra überall "Puttyfenster" geschrieben und gebe mir ehrlich gesagt sehr viel Mühe meine Beiträge verständlich und nicht verwirrend zu schreiben. Tut mir leid, wenn es mir nicht gelingt. Was wäre denn die richtige Ausdrucksweise? "Ich habe von der Fritzbox aus einen Befehl von Hand aufgerufen?"
Was Deinen Beitrag #13 angeht, kann ich nochmal sagen: "Der Befehl allein" funktioniert ja, siehe oben. Nur beim Aufruf vom kompletten Skript will es nicht klappen.

Allerdings hab ich es grad raus: im Pfad muss ein "/" statt "\" bzw. "\\" hin. Den Beitrag #2 von Silent-Tears habe ich schon gelesen aber als ich es das letzte Mal mit "/" getestet hatte, ging wohl etwas anderes nicht.


So geht jedenfalls das Skript:
Code:
ssh -i /var/tmp/flash/ssh/rsakey_box [email protected] 'E:/foobar2000/foobar2000.exe'
(ohne start)

der manuelle Aufruf über die Fritz!box hingegen klappt so:

Code:
start E:/foobar2000/foobar2000.exe
oder so
Code:
start E:\\foobar2000\\foobar2000.exe


Vielen Dank für Eure Hilfe!


Gruß,
Alex
 
Der Ausdruck "Puttyfenster" kommt zum ersten Mal in #13 vor, vorher ist immer nur von Putty die Rede, was mit der ganzen Problematik nichts zu tun hat. Du könntest genauso gut telnet verwenden, um auf die Box zu kommen. Oder die serielle Konsole.
Die Befehle werden von der Shell auf der Box ausgeführt.

Dagegen wird der Start einer .exe Datei garantiert nicht auf der Box ausgeführt, sondern auf einem Windows-Rechner.

Freut mich, wenn es jetzt bei Dir funktioniert, aber vermutlich hättest Du es einfacher, wenn Du Dir darüber klar wirst, was auf welchem Rechner ausgeführt wird.
 
@RalfFriedl
Danke, mich freut es auch.
Durch Deine Frage aus #13 wurde mir nicht wirklich klar, was Du von mir wolltest. Nachdem Oli mich drauf hingewiesen hat, habe ich es auch beachtet.

Eins klappt bei mir allerdings immernoch nicht.
Normale Programme kann ich ausführen und weiß nun, dass man "\" durch "/" ersetzen muss. Aber was ist mit Parametern von Programmen, wie z.B. bei TrueCrypt? Womit "escapet" man "/"?
Bei E:\TrueCrypt\TrueCrypt.exe /q /lD /m rm /v "\Device\Harddisk1\Partition1" /p muss es im Pfad so aussehen: E:/TrueCrypt/TrueCrypt.exe
Und was ist mit /q /lD usw.? Wenn ich es so lasse, versteht die Box(shell) es nicht (bzw. fasst es anders auf) und startet nur das Programm, ohne die Parameter zu beachten.



Gruß,
Alex
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.