SSHy is a HTML5 SSHv2 web client implementing E2E encryption that runs well on modern web browsers.
This is a fork of SSHy - intended as a module for Prompts, the new Friend OS command line environment.
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 https://linuxzoo.net , a non-functional preview is available at https://stuicey.github.io/SSHy/.
- 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 outtransport.settings.rsaCheckEnabled = false;
insidewrapper.html
.
The required files are:
css/*
fonts/*
js/*
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/
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.
Index.html
java -jar closure-compiler.jar --js_output_file=js/combinedLibs.comb.js js/defines.js js/src/*.js js/*.js '!**.comb.js' '!**Client.js'
Wrapper.html
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
ssh-rsa
aes128-ctr
hmac
Both SHA1 and SHA256 are supported for diffie-hellman and HMAC algorithms.