Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stuicey/SSHy
HTML5 SSH Web Client
https://github.com/stuicey/SSHy
client encryption html html5 javascript jsbn sjcl ssh websockets xterm
Last synced: about 1 month ago
JSON representation
HTML5 SSH Web Client
- Host: GitHub
- URL: https://github.com/stuicey/SSHy
- Owner: stuicey
- License: mit
- Created: 2017-06-13T09:58:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-11-29T19:31:43.000Z (about 2 years ago)
- Last Synced: 2024-08-04T13:05:45.727Z (5 months ago)
- Topics: client, encryption, html, html5, javascript, jsbn, sjcl, ssh, websockets, xterm
- Language: JavaScript
- Size: 13.6 MB
- Stars: 540
- Watchers: 23
- Forks: 80
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SSH: HTML5 Based SSH Client
SSHy is a HTML5 SSHv2 web client implementing E2E encryption that runs well on modern web browsers.
## About
SSHy is a fast and responsive SSHv2 web client with end-to-end encryption supplied by [SJCL](https://github.com/bitwiseshiftleft/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](https://github.com/sourcelair/xterm.js/). Currently in use at https://linuxzoo.net , a non-functional preview is available at https://stuicey.github.io/SSHy/.
![](https://user-images.githubusercontent.com/6617743/28020759-5cb16a98-657d-11e7-8497-d493f90823f7.png)
![](https://user-images.githubusercontent.com/6617743/28020557-c342c0f0-657c-11e7-8f54-8216e9485b24.png)
## Features* 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## Installation
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:
```
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](http://github.com/stuicey/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](https://github.com/stuicey/wsProxy/blob/master/README.md).
```
git submodule update --init --recursive
npm i -g wsproxy/
wsproxy
```Other websocket proxies such as [Websockify](https://github.com/novnc/Websockify) should be compatable with `wrapper.html`.
## Building
This project utilises the [Google Closure Compiler](https://github.com/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](https://atom.io/packages/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'
```## Compatability
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.