Website shell?
Im moment läuft meine Website über wp,
Was ich gerne hätte ist eine interaktive shell
Wie ssh, aber als webseite, wie würde ich so etwas anstellen, damit die domain, direkt auf eine shell verweist.
Und am wichtigsten, wie mache ich das sicher, es scheint mir relativ gefährlich eine shell mit commands so offen zu presentieren, kann ich comands einschränken?
5 Antworten

@ Cathouseshape:
...kann ich comands einschränken?
Hmmm - da ich nicht weiß, welches Betriebssystem Du verwendest (es könnte Linux sein oder Unix), ist das nicht ganz leicht zu beantworten.
Ich habe das Computen in den 80ern auf einem Amiga begonnen, dessen Betriebssystem an Unix angelehnt war (wie auch Linux). Ich kann mich entsinnen, dass wir damals bootfähige Disketten erstellt haben, die dann nach dem Booten auch eine Shell zur Verfügung stellten. Beim Amiga-Betriebssystem lagen alle "commands" im "C:"-Dirctory. Also haben wir in dem C-Directory der bootfähigen Diskette nur die Commands abgelegt, die wirklich in der Shell benutzt werden sollten...
Vielleicht kannst Du das für Deine Zwecke umsetzen...

Das eigentlich Problem ist ja, das HTTP Stateless und ansich keine stehende Verbindung ist.
Möglichkeit 1: Eine Eingabe wird via Request an den Server übermittelt, die Antwort zurückgeschickt. Nicht wirklich prickelnd.
Möglichkeit 2: Du etablierst eine persistente Verbindung indem Du z.B. Websockets nutzt, an das andere Ende des Websockets wird dann eine Shell gebunden.
Egal wie Du es angehst, die Verbindung sollte verschlüsselt sein und es sollte eine Authentication/Authorization stattfinden. Willst Du es restriktiver, dann müßtest Du eine restricted Shell nehmen, ein chroot nutzen oder auf anderem Wege jailen.
-------
Noch als Randbemerkung, es gibt komplette iKVM das in Javascript und HTML5 umgesetzt ist. Für eine fertige Lösung siehe ultrarunners Antwort.

Dafür gäbe es shellinabox:
https://github.com/shellinabox/shellinabox/blob/master/README.md
Und falls du damit gar nicht auf deinen Server zugreifen willst, sondern es nur "zum Spielen" brauchst, gäbe es hier ein Debian Linux in einer virtuellen Maschine, die komplett im Webbrowser läuft:
Das müsste ziemlich sicher sein.

das ist nicht ohne probleme zu betreiben . früher hab ich für sowas webmin genommen . das hat eine eingebaute web->shell funktion .
ansosten vielleicht sowas wie plesk oder so , die sollten auch web consolen anwendungen haben .

Die Verbindung musst dazu Verschlüsseln. Dazu musst eigene root Zertifikate erstellen und als Root CA auftreten. Mit den Zertifikaten kannst dann eine Verschlüsselte Verbindung zwischen Client und Server aufbauen. Darüber kannst dann enfalls eine Verschlüsselte Verbindung mittels SSH generieren.