Tobias: "ssh ohne ssh"

Hallo,

also die Situation ist folgende:
 Ich hätte gerne so was wie ssh (notfalls auch ohne scp), kann auch auf die Verschlüsselung verzichten und habe ein Webspace Packet ohne ssh.

Mit PHP ist es jedoch möglich, Kommandos auszuführen und das Ergebniss anzeigen zu lassen.
 Und man kann eine Verbindung nicht gleich wieder schließen, wenn alle Daten übertragen wurden.
 Nun also meine Frage: Ist es möglich, damit ein ssh Fenster zu simulieren, während man eigentlich nur eine Seite html und darunter ein Formular für die nächste Eingabe hat?
 Was mir wichtig ist ist, dass man z.b. erst "cd htdocs" sagen kann und dann "tar -jxvf ../website.tar.bz2" und der Server halt immer noch weiß, dass man im Verzeichniss htdocs ist und nicht wieder im Homedir anfängt.

Hat damit jemand Erfahrung?

Bin für jeden Tipp dankbar!

Tobias

  1. Ich hätte gerne so was wie ssh (notfalls auch ohne scp), kann auch auf die Verschlüsselung verzichten und habe ein Webspace Packet ohne ssh.

    "SSH ohne Verschlüsselung" gibt's, das ist Telnet. Aber vermutlich hast Du auch keinen Zugriff mit Telnet und willst eigentlich auch was ganz anderes.

    Was mir wichtig ist ist, dass man z.b. erst "cd htdocs" sagen kann und dann "tar -jxvf ../website.tar.bz2" und der Server halt immer noch weiß, dass man im Verzeichniss htdocs ist und nicht wieder im Homedir anfängt.

    Soll das denn nun auf dem gleichen Server passieren, auf dem auch die Homepage liegt, oder auf einem anderen Server? Möchstest Du "on the fly" eine gepackte Version der Homepage generieren, auf der der Besucher gerade ist und soll der Besucher die dann herunterladen können? Oder was ganz anderes?

    • Bugfix
    1. Hi,

      auf telnet habe ich auch keinen Zugriff - nur ftp (halt das übliche Webspace billig packet mit 100 MB Speicher und PHP und MYSQL).

      Der Sinn und Zweck ist, dass ich sozusagen ssh mit PHP realisiere, weil ich ssh (bei diesem einen Webspace) nicht habe.

      Das ohne Verschlüsselung war nur, damit niemand sagt, dass ich dann ssl bräuchte, weil es sonst nicht mit ssh zu vergleichen sei.

      Tobias

      1. auf telnet habe ich auch keinen Zugriff - nur ftp (halt das übliche Webspace billig packet mit 100 MB Speicher und PHP und MYSQL).

        Der Sinn und Zweck ist, dass ich sozusagen ssh mit PHP realisiere, weil ich ssh (bei diesem einen Webspace) nicht habe.

        Ach so, allmählich verstehe ich wohl: Du willst im Browser einen Shellzugriff simulieren. Ob das dem Provider gefällt?!

        Falls die Programmausführung möglich ist, kannst Du wohl so was verwenden wie das Script hier. Das ist aber wirklich eine "Schweinerei", quick'n'dirty und absolut nicht zur Nachahmung empfohlen:

        <?php
        if ($_GET['befehl'] != '') {
          $a= $_GET['befehl'];
          if ($_GET['senden'] == 'on') {
            header ('Content-Type: application/octet-steam');
            print $a;
            exit;
          }
          print "<pre>";
          print "<b>Befehl: " . htmlentities ($a) . "</b>\n";
          print htmlentities ($a);
          print "</pre>";
        }
        ?>
        <form method="get" action="<?php print $_SERVER['PHP_SELF']; ?>">
        <input type="text" name="befehl">
        <input type="submit"><br>
        <input type="checkbox" name="senden"> Ausgabe an Browser senden
        </form>

        Damit kannst Du Befehle wie "dir", "pwd", "cat <Dateiname>" o.ä. ausführen. Wenn Du das Ergebnis des Befehls abspeichern willst, musst Du "Ausgabe an Browser senden", dann kannst Du z.B. mit "cat bild.jpg" eine Bilddatei herunterladen, ggf. musst Du halt den Dateinamen dann lokal anpassen.

        Achtung: die Befehle müssen immer auf einen Schlag eingegeben werden, erst cd <Verzeichnis> absenden und daraufhin cat <Datei> geht nicht, statt dessen gibst Du cd <Verzeichnis>; cat <Datei> ein.

        • Bugfix
        1. Hi,
          danke für die Antwort.

          Ach so, allmählich verstehe ich wohl: Du willst im Browser einen Shellzugriff simulieren. Ob das dem Provider gefällt?!

          Genau.
           Das sollte dem Provider lieber sein, als der Providerwechseln (die haben nämlich keine Webhosting Packete mit ssh und einen Server habe ich schon mal gehabt, aber das ist in den Ferien zu problematisch).

          Achtung: die Befehle müssen immer auf einen Schlag eingegeben werden, erst cd <Verzeichnis> absenden und daraufhin cat <Datei> geht nicht, statt dessen gibst Du cd <Verzeichnis>; cat <Datei> ein.

          Ja, aber genau das ist ja das Problem.
           Ich kann natürlich die vorausgegangenen Befehle auch immer wieder mit ausführen, aber das macht halt auch Probleme (wenn es z.b. rm und nicht cd ist). Gibt es denn keine Möglichkeit, dass das PHP Script weiterläuft und wartet, bis es neue Eingaben erhällt?

          Tobias

          1. echo $begrüßung;

            Gibt es denn keine Möglichkeit, dass das PHP Script weiterläuft und wartet, bis es neue Eingaben erhällt?

            PHP könnte das schon, zumindest mit der CLI-Version (Kommandozeile) und den Readline-Funktionen. Das Problem ist hier das HTTP, das nicht für solche eine fortlaufende bidirektionale Kommunikation ausgelegt ist.

            echo "$verabschiedung $name";

            1. Hi,
               danke für die Antwort.

              Natürlich ist es nicht die normale Verwendung.
               Aber man kann ja eine HTTP-Verbindung nach dem Laden der Daten offen lassen (eigentlich, damit das ganze schneller geht).
               Ist das damit möglich?

              Vielen Dank für eure Bemühungen,
              Tobias

              1. Hi,
                 ok - jetzt habe ich ja eine Lösung ([url]http://forum.de.selfhtml.org/?t=120496&m=774045[/url]).
                 Das ist zwar ein wenig anders als das was ich eigentlich dachte aber macht genau das, was ich wollte.

                Danke an _alle_, die sich hier die Mühe gemacht haben, mir weiterzuhelfen!

                Tobias

  2. echo $begrüßung;

    Mit PHP ist es jedoch möglich, Kommandos auszuführen und das Ergebniss anzeigen zu lassen.
    Nun also meine Frage: Ist es möglich, damit ein ssh Fenster zu simulieren, während man eigentlich nur eine Seite html und darunter ein Formular für die nächste Eingabe hat?

    Suchst du vielleicht sowas wie die PHP Shell?

    echo "$verabschiedung $name";

    1. Hi,

      Suchst du vielleicht sowas wie die PHP Shell?

      Exakt.
       Danke!
       Ich werde mir noch "einen vi" mit PHP und ner <textarea> bauen und schon spare ich mir den Providerwechsel.
       Schließlich hat mein letzer Providerwechsel mich echt genervt.
       Hat eine halbe Ewigkeit gebraucht (vor allem die .com Domains) und ich musste lauter Zeugs unterschreiben und absenden (was dann auch noch angeblich verloren gegangen ist und ich musste es neu senden; und das bei einem eigentlich (meiner Meinung nach) serieusen Provider).

      Also danke nochmal - das ist genau das was ich suche!!!

      Tobias