Log In [secure]
Log In [http]

Anyterm

A Terminal Anywhere

Comparisons

This page compares Anyterm with other methods of providing remote access to a computer. These methods vary in their requirements of the server and client computers and the nature of the network between them (firewalls!) and the security and type of access that they provide.

This page was last updated on 25th May 2005 - please let me know if you have any updates, corrections, clarifications or additions. I have not actually used the vast majority of these programs.

Entries are vaguely organised from more traditional to more radical solutions, with discussion at the end.

1. Telnet

Access provided
Text terminal.
Client Requirements
Telnet client program. Included in most operating systems including Windows.
Server Requirements
Telnet server.
Network requirements
Telnet port must be open.
Security
No encryption.

2. SSH

Access provided
Text terminal.
Client Requirements
SSH client program. Not included in Windows but can be downloaded for free (e.g. Putty; 380kbytes).
Server Requirements
SSH server.
Network requirements
SSH port must be open.
Security
Communication is encrypted.

3. VNC

Homepage
http://realvnc.com/
Freshmeat Page
http://freshmeat.net/projects/realvnc/
Description
VNC provides remote access to a graphical desktop rather than a text terminal by sending pixels rather than characters. The links above are to the original implementation but the protocol is open and a range of clients and servers are available.
Access provided
Graphical desktop.
Client Requirements
Both freely-downloadable stand-alone viewer programs and Java web-browser viewers are available.
Server Requirements
A variety of server implementations are available.
Network requirements
Appropriate ports must be open.
Security
Different implementations provide different levels of encryption and authentication.

4. TCP-over-HTTP Tunnels

Description
When the ports required by Telnet, SSH or VNC are blocked by a firewall or other obstacle between the client and the server it is possible to use a TCP over HTTP tunnel. Several such programs exist, including Corkscrew, httptunnel and httunnel.
Client Requirements
Tunnel client program; several freely downloadable.
Server Requirements
Tunnel server program; several freely downloadable. In most cases the server must not be running a web server since the tunnel will use the same port; the exception is httunnel which is implemented as an Apache module.
Network requirements
Only standard HTTP(S) ports needed; should work with proxies.
Security
Same as for the protocol being tunnelled.

5. CGI-Shell

Homepage
http://cgi-shell.binaervarianz.de/
Freshmeat Page
http://freshmeat.net/projects/cgi-shell/
Description
CGI-Shell consists of a CGI script and a client program that communicate using HTTP. In effect it provides an HTTP tunnel.
Version considered
0.21
Maturity
Beta.
Access provided
Text terminal.
Client Requirements
Custom client program, probably Unix-specific.
Server Requirements
CGI-enabled web server.
Network requirements
Only standard HTTP ports needed.
Security
Not encrypted.

6. WebTerm

Homepage
http://awacs.dhs.org/software/webterm/Documentation/
Freshmeat Page
http://freshmeat.net/projects/webterm/
Description
WebTerm is a Java Telnet applet with VT100 color emulation.
Version considered
1.4.1
Maturity
Stable.
Access provided
Text terminal.
Client Requirements
Web browser with Java.
Server Requirements
Telnet server.
Network requirements
Standard telnet port must be open.
Security
No encryption.

7. JCTerm

Homepage
http://www.jcraft.com/jcterm/
Freshmeat Page
http://freshmeat.net/projects/jcterm/
Description
JCTerm (JCraft's Term) is a pure Java VT100 terminal emulator for SSH2.
Version considered
0.0.8
Maturity
Alpha.
Access provided
Text terminal.
Client Requirements
Web browser with Java 1.3. Also runs on some PDAs.
Server Requirements
SSH daemon.
Network requirements
SSH port must be open.
Security
SSH provides encryption and authentication.

8. MindTerm

Homepage
http://www.appgate.com/products/80_MindTerm/index.php
Freshmeat Page
http://freshmeat.net/projects/mindterm/
Description
MindTerm is a Java SSH client that can be used as an applet or stand-alone. The current version is free for personal use, though earlier versions were GPLed.
Version considered
2.4.2
Access provided
Text terminal.
Client Requirements
Web browser with Java, or other Java platform.
Server Requirements
SSH daemon.
Network requirements
SSH port must be open.
Security
SSH provides authentication and encryption.

9. Shell in a Box

Homepage
http://shellinabox.com/
Freshmeat Page
http://freshmeat.net/projects/shellinabox/
Description
Shell In A Box provides shell access to a server from within any Java-enabled Web browser. Requests are tunneled over HTTP using the same proxy settings that the browser uses. On the server, it installs as a CGI program, and there is no client-side installation neccessary. It sports full VT102 emulation with Unicode support, international font files, ANSI colors, a scrollback buffer, mouse position reporting, clipboard support, and user-configurable emulation modes. All user preferences are stored as cookies in the client's browser.
Version considered
1.0beta
Maturity
Beta.
Access provided
Text terminal.
Client Requirements
Web browser with Java.
Server Requirements
CGI-enabled web server.
Network requirements
Only standard HTTP(S) ports needed; should work with proxies.
Security
Not encrypted?

10. WeirdMind

Homepage
http://www.tam.cornell.edu/Computer.old/remoteaccess/weirdmind/
Freshmeat Page
http://freshmeat.net/projects/weirdmind/
Description
WeirdMind combines the GPL version of the MindTerm Java SSH client with the WeirdX Java X server. This gives you a terminal within your web browser from which you can launch X applications that are displayed in their own applet windows.
Version considered
0.7
Maturity
Beta.
Access provided
Text terminal and X windows.
Client Requirements
Web browser with Java.
Server Requirements
SSH daemon.
Network requirements
SSH port must be open.
Security
SSH provides authentication and encryption.

11. SSHWebProxy

Homepage
http://www.ericdaugherty.com/dev/sshwebproxy/
Freshmeat Page
http://freshmeat.net/projects/sshwebproxy/
Description
SSHWebProxy is a Java Servlet application that enables users to access SSH Shell sessions and SSH File Transfer sessions using a web browser. All client interaction uses pure HTML, so it can be used from anywhere.
Version considered
0.5
Maturity
Beta
Access provided
I believe that the web page submits keystrokes line-at-a-time to the server which returns a new terminal snapshot.
Client Requirements
Any web browser.
Server Requirements
Web server capable of executing Java servlets, e.g. JBoss.
Network requirements
Only standard HTTP(S) ports used.
Security
Works with SSL.

12. PHP Shell

Homepage
http://mgeisler.net/php-shell/
Freshmeat Page
http://freshmeat.net/projects/phpshell/
Description
A PHP script that executes commands one at a time.
Maturity
Mature
Access provided
Executes single commands, so interaction is not possible.
Client Requirements
Any web browser.
Server Requirements
Web server with PHP, not in "safe mode".
Network requirements
Only standard HTTP(S) ports used.
Security
Presumably works with SSL.

13. wapsh / htsh

Homepage
http://www.exolution.de/geschaeft/produkte/wapsh.en.htm
Freshmeat Page
http://freshmeat.net/projects/wapsh/
Description
wapsh provides a shell on any WAP-capable mobile phone, and includes features to improve accessibility such as shortcuts and command history. htsh provides equivalent access from web browsers. Free for non-commercial use.
Version considered
1.0.1
Maturity
Stable.
Access provided
Keystrokes are sent line-at-a-time to the shell or other process. No terminal emulation.
Client Requirements
Any web browser, or any WAP browser.
Server Requirements
Apache with PHP.
Network requirements
Uses standard HTTP(S) ports.
Security
Works with SSL.

14. Anyterm

Homepage
http://anyterm.org/
Freshmeat Page
http://freshmeat.net/projects/anyterm/
Description
Using Javascript, XmlHTTP and an Apache module it's possible to interact with a box on a web page that behaves like a shell or other text-mode application on the host machine. Performance it quite respectable and it will run almost anywhere since it uses only HTTP on standard ports.
Version considered
1.0 / 1.1.0
Maturity
Stable.
Access provided
Text terminal.
Client Requirements
Web browser with XmlHTTP, i.e. Internet Explorer, a Mozilla-based browser or Opera. Konqueror and Safari may or may not provide XmlHTTP in their latest versions. Javascript must be enabled.
Server Requirements
Must be Apache 2 on a Unix-like platform (only Linux tested so far.) Root access required to install module.
Network requirements
Only standard HTTP(S) ports needed; should work with proxies.
Security
Communication can be encrypted using SSL, which also authenticates the server to the client if a trusted SSL certificate is used.

15. Anyterm Standalone Daemon

Homepage
http://anyterm.org/standalone.html
Description
Uses the same browser Javascript as Anyterm, but with a custom server, independent of Apache.
Version considered
1.1.7
Maturity
Experimental
Access provided
Text terminal.
Client Requirements
Web browser with XmlHTTP, i.e. Internet Explorer, a Mozilla-based browser or Opera. Konqueror and Safari may or may not provide XmlHTTP in their latest versions. Javascript must be enabled.
Server Requirements
Custom server.
Network requirements
Can use any port; cannot use the same port as an existing web or other server.
Security
None.

16. AjaxTerm

Homepage
http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
Description
Ajaxterm is a web based terminal, inspired by Anyterm. The server side is written in python using qweb, with Javascript in the browser.
Version considered
0.5
Access provided
Text terminal.
Client Requirements
Web browser with XmlHTTP.
Server Requirements
Qweb provides a lightweight web server which AjaxTerm runs inside. Qweb also supports various CGI-like web server interfaces which AjaxTerm can presumably also use, though I am not sure how the session persistence works in those cases.
Network requirements
Can use any port; to use the same port as an existing web server one of hte CGI-like interfaces described above must be used.
Security
Unknown; does Qweb support SSL?

17. Discussion

If you don't need encryption, can install programs on the client machine and have no firewalls in the way then everything is easy! The more of these factors that come into play the more your choices are narrowed down.

If you can install programs on the client machine then you can use an SSH client like Putty or a VNC viewer. If there's a firewall problem, install a tunnel as well. Of course you might still sometimes prefer to use one of the browser-based solutions to avoid the time taken to download and install.

If you don't have firewall problems, JCTerm provides SSH in a web browser. If you do have a firewall in the way you can use Shell in a Box because it uses HTTP ports, but it doesn't provide encryption (unless it can use SSL?).

SSHWebProxy and PHP Shell both have minimal client and network requirements, but they operate in a one-line or one-command at a time mode, rather than as a fully interactive terminal.

Anyterm doesn't need any installation on the client, works with standard ports and can use SSL encryption. Furthermore it doesn't need Java: although Java is currently widely available, Microsoft will not be including their JVM in Windows after the end of 2007. The XmlHTTP support that Anyterm needs is included in most new browsers and will become even more widespread in the future.