Heute habe ich mich ein bisschen mit SSHvia Web beschäftigt und eine mögliche Lösung mit AJAX gefunden. Die Webseite sagt folgendes zu dem Programm:

Ajaxterm is a web based terminal. It was totally inspired and works almost exactly like http://anyterm.org/ except it’s much easier to install

Die Installation ist ganz einfach, ich beschreibe diese im folgenden

Ich beschreibe die Installation von AjaxTerm 0.10 auf einem Debian3.1-System. Zunächst wird die neueste Version von AjaxTerm von der Webseite gezogen (derzeit 0.10), anschließend unter Root-Access entpackt und an die korrekte Stelle kopiert. Da AjaxTerm als Daemon auf Localhost laufen soll, sollte dieser bei Systemstart gestartet werden, weshalb das Startscript kopiert werden muss.

1
2
3
4
5
wget http://antony.lesuisse.org/qweb/files/Ajaxterm-0.10.tar.gz
tar xvzf Ajaxterm-0.10.tar.gz
mv Ajaxterm-0.10/ /usr/local/ajaxterm/
cd /usr/local/ajaxterm/
cp configure.initd.debian /etc/init.d/ajaxterm

Nun muss /etc/init.d/ajaxterm noch editiert werden, die Zeile mit DAEMON muss auf /usr/local/ajaxterm/ajaxterm.py und die Zeile mit PORT muss auf 8022 geändert werden. Dann sollten die Zeilen so aussehen:

1
2
DAEMON=/usr/local/ajaxterm/ajaxterm.py
PORT=8022

Nun kann AjaxTerm gestartet werden:

1
2
chmod a+x /etc/init.d/ajaxterm
/etc/init.d/ajaxterm start

Nun startet ajaxterm mit den folgenden Zeilen:

1
2
Starting ajaxterm on port 8022
AjaxTerm at http://localhost:8022/ pid: 5463

Nun lauscht AjaxTerm auf localhost:8022, ist aber von aussen noch nicht erreichbar. Nun schlägt der Autor mod_proxy des Apache Webservers vor, um den Port zu pipen. Dank SSL wird einerseits die Verbindung gesichert und andererseits aufgrund des Keepalive schneller als ohne SSL. Einen Beispiel-Host gibt hier der Autor auf seiner Webseite schon bekannt, welcher noch angepasst werden kann:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
 Listen 443
 NameVirtualHost *:443


 ServerName localhost
 SSLEngine On
 SSLCertificateKeyFile ssl/apache.pem
 SSLCertificateFile ssl/apache.pem

 ProxyRequests Off

 Order deny,allow
 Allow from all

 ProxyPass /ajaxterm/ http://localhost:8022/
 ProxyPassReverse /ajaxterm/ http://localhost:8022/

Praktische Sache :) Zu überlegen wäre z.B. noch HTTP-Authentifikation um eine gewisse Zugriffssicherheit zu haben.