WebShell: webbasierte Konsole für unterwegs
Auf einen Linux-Server greife ich eigentlich immer mittels SSH zu. Bei meinen Servern ist hierbei die Authentifizierung nur mittels Schlüssel möglich. Passwörter habe ich komplett deaktiviert. Dies erschwärt jedoch den Zugriff, wenn man sich an einem fremden Arbeitsplatz befindet.
Es kann jedoch auch sein, dass der Zugang zum Internet ausschließlich über einen Proxy erfolgen kann. Und im schlechtesten Fall, kann man SSH-Verbindungen hierüber nicht tunneln. Dann wäre eine Lösung von Vorteil, die über Standard-HTTP einen vollwertigen Zugriff auf das Zielsystem ermöglicht.
Zwei Lösung schienen mir für einen solchen Fall am brauchbarsten: Ajaxterm und Anyterm. Beide stellen eine webbasierte Konsole mit Hilfe von Ajax zur Verfügung. Es wird lediglich ein Browser mit aktiviertem JavaScript benötigt.
Anyterm hat einige Abhängigkeiten, so dass ich mir lediglich deren Demo angesehen habe. Eine Installation war auf die Schnelle nicht möglich. Hier ist eindeutig Ajaxterm im Vorteil. Einfach auspacken und starten. Voraussetzung ist lediglich Python. Ajaxterm unterstütz jedoch kein UTF-8, so dass es für meine Systeme nicht in Frage kommt.
Durch Zufall bin ich noch auf WebShell gestoßen. WebShell basiert auf Ajaxterm und bietet ein paar zusätzliche Features. So ist u.a. bereits ein sicherer (https) Webserver integriert. Es wird UTF-8 unterstützt, und es gibt eine virtuelle Tastatur (nur nur für iPhone-Nutzer geeignet).
Die Installation beschränkt sich auf's Entpacken und Starten des Dienstes. Für eine sichere Verbindung muss vor dem Start noch ein Zertifikat erzeugt werden. Oder man steckt WebShell mittels mod_proxy hinter einen Apache.
Eigentlich kann man jetzt schon mit der webbasierten Konsole arbeiten. Zwei Anpassungen sollten jedoch noch vorgenommen werden. So wird standardmäßig die Tabulator-Taste nicht unterstützt. Dies ist jedoch mit einer kleinen Änderung im JavaScript behoben. Bei Google Code gibt es hierfür eine Lösung.
Außerdem ist es sicherlich sinnvoll screen einzusetzen. Zumindest bei Ubuntu läuft das jedoch nicht ganz reibungslos. So funktioniert z.B. die Backspace-Taste nicht. Eric beschreibt, wie man das mit einem zusätzlichen alias löst.
Die Reaktion der Shell ist ausreichend schnell. Dei Verzögerungen sind nur gering. Jedoch ist ein einfaches Copy'n'Paste nicht möglich. Was die Funktionalität zumindest ein wenig einschränkt.
Bei einem 2400er Celeron kann eine einzelne Session schon mal bis zu 20% der CPU-Leistung in Anspruch nehmen. 10% scheinen hier der Durchschnitt.
Wer darauf angewiesen ist, von nahezu überall auf seine Systeme zugreifen zu können, sollte WebShell unbedingt ausprobieren.


Oktober 26th, 2009
Hier noch ein Link mit dem man das ganze per htaccess schützen kann
https://help.ubuntu.com/community/AjaxTerm