piping-ssh-web icon indicating copy to clipboard operation
piping-ssh-web copied to clipboard

SSH over HTTPS via Piping Server on Web browser

piping-ssh

SSH over HTTPS via Piping Server

Application

https://piping-ssh.nwtgck.org

Requirement

This project requires the latest Google Chrome with enable-experimental-web-platform-features flag for fetch() upload streaming feature (origin trial now).

chrome://flags/ > Experimental Web Platform features > Enabled

Acknowledgements

This project is highly based on SSHy. Thanks original author @stuicey and other contributors!

The idea of tunneling over Piping Server was proposed by @Cryolite in a Japanese post, https://qiita.com/Cryolite/items/ed8fa237dd8eab54ef2f. Thanks!

Original project - SSHy

The base project, 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/.

Features powered by 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
  • Network Traffic Monitor

Compatibility powered by SSHy

The base project, SSHy, was designed to be compatible 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.

URL fragment parameters

e.g. https://piping-ssh.nwtgck.org/#?user=myuser&password=mypass&s_port=22&cs_path=aaa&sc_path=bbb

  • user: SSH user name
  • password: SSH user password
  • server: Piping Server URL
  • cs_path: Server-to-client path
  • sc_path: Client-to-server path
  • s_port: Server port
  • headers: HTTP headers to Piping Server
    • (e.g. [["X-MyExtra1", "myvalue1"], ["Content-Type", "application/myapp"]])

Build & Serve

This project utilises the Google Closure Compiler to minify and compile the JavaScript.

npm run serve

Then, open http://localhost:8080 on your browser.