Version 8, last updated by jinpeng at June 30, 2009 17:30 UTC

This is a J2EE Web application that allows users to use web browser as a SSH client. Sort of like a putty on the Web.

This project is inspired by other open source projects such as WebShell and AjaxTerm. Refer to here for further reading of the general idea.

What make this project unique are its J2EE compliant, simple deployment, operating system agnostic and design for integration:

  • Single J2EE WAR file deployment. The whole project is deployed as a single War file. The installation is really simple, throw it into Tomcat, JBoss, Jetty (or whatever Web container you like), it will just work.
  • Operating system agnostic. This is a pure Java plus Groovy implementation. The SSH client uses pure Java based library (Ganymed SSH-2 for Java or JSch). You can install it on J2EE Web container running on any operating systems including Windows.
  • Over standard HTTPS port (443 by default). Keystroke from Ajax based web browser is sent over HTTPS to the SSH Servlet. The port to be used for HTTPS is configured in your Web container. I am think building a Jetty based package that can be run as a standalone application. HTTPS is enabled automatically in this type of deployment.
  • SSH session and terminal emulation in Java thread. The SSH Servlet handles SSH session open/close and terminal emulation to the remote SSH server using Java thread (instead of external process comparing to WebShell and AjaxTerm).
  • Mashup support. A simple API is provided to allow the grailssh user interface being mashed up into other aggregator canvas page. For example, right click a IP address on a page and select "Lauch grailssh" open the "grainssh" in a new Web browser Window or Tab.
  • Single Sgin-On integration. If the target SSH servers support Single Sign-On technologies such as Kerberos, integraters can plug-in call back function to handle the SSH authentication based on the current Web user's login session.
  • REST style Web service that allows SSH commands to be sent to target servers from Web service clients to allow automation (After HTTP Basic authentication of course).
  • Keystroke multicasting. Keystorke to the master session can be multicasted into one or more than one slave sessions. A cool to automated repated tasks on multiple SSH hosts.

This project is released under Apache 2.0 license.