Skip to content
Go to file

SSH: HTML5 Based SSH Client

SSHy is a HTML5 SSHv2 web client implementing E2E encryption that runs well on modern web browsers.


SSHy is a fast and responsive SSHv2 web client with end-to-end encryption supplied by SJCL. SSHy implements a minimal subset of the SSHv2 protocol that provides and controls a pseudo-terminal. The terminal front-end interface is provided by xterm.js. Currently in use at , a non-functional preview is available at


  • 8 Preset color schemes & Xresources upload and import
  • UTF-8 Character support
  • Automatic local echo detection
  • Customisable terminal & font size
  • Copy and Paste support for Chrome & Firefox
  • Network Traffic Monitor


Either copy or clone the repository into a directory being currently served by a web server and navigate to index.html.

Two versions of this project are supplied:

  • index.html - The main page featuring a modal login container and modifiable destination IP.
  • wrapper.html - A minimal wrapper intended for use with CGI builds. Features interactive terminal login and fixed destination IP. By default SSH-RSA is disabled on this version. To enable it comment out transport.settings.rsaCheckEnabled = false; inside wrapper.html.

The required files are:

index.html OR wrapper.html

For best performance it is recommended to host a websocket proxy close to the traffic origin or destination. This can be done by modifying wsproxyURL near the top of index.html or wrapper.html to the IP or domain of a personal websocket proxy.

This project is intended to be used with wsProxy provided as a submodule in wsproxy/. This application allows for IP multiplexing by appending the destination IP to the websocket proxy URI. More details on this application an be obtained from the related README.

git submodule update --init --recursive
npm i -g  wsproxy/

Other websocket proxies such as Websockify should be compatable with wrapper.html.


This project utilises the Google Closure Compiler to minify and compile the JavaScript. The two versions index.html and wrapper.html can be either compiled manually or through Atom build.


java -jar closure-compiler.jar --js_output_file=js/combinedLibs.comb.js js/defines.js js/src/*.js js/*.js '!**.comb.js' '!**Client.js'


java -jar closure-compiler.jar --js_output_file=js/combinedJS.comb.js js/defines.js js/src/*.js js/*.js '!**.comb.js'


SSHy was designed to be compatable with a majority of SSHv2 servers. SSHy should be able to connect to any standardly configured SSHv2 server that has the following algorithms enabled:

diffie-hellman-group-exchange, diffie-hellman-group14, diffie-hellman-group1

Both SHA1 and SHA256 are supported for diffie-hellman and HMAC algorithms.

You can’t perform that action at this time.