Skip to content

Releases: billchurch/webssh2

Resize and Browser Updates

Choose a tag to compare

@billchurch billchurch released this 10 Feb 16:26

Change Log

[0.2.0] 2018-02-10

Mostly client (browser) related changes in this release

Added

  • Menu system
  • Fontawesome icons
  • Resizing browser window sends resize events to terminal container as well as SSH session (pty)
  • New terminal options (config.json as well as GET vars)
    • terminal.cursorBlink - boolean - Cursor blinks (true), does not (false) Default: true.
    • terminal.scrollback - integer - Lines in the scrollback buffer. Default: 10000.
    • terminal.tabStopWidth - integer - Tab stops at n characters Default: 8.
  • New serverside (nodejs) terminal configuration options (cursorBlink, scrollback, tabStopWidth)
  • Logging of MRH session (unassigned if not present)
  • Express compression feature

Changed

Fixed

  • Resolved loss of terminal foucs when interacting with option buttons (Logging, etc...)

BIG-IP Notes

The attached BIG-IP-ILX-WebSSH2-20180210-0.2.0.tgz file may be imported to as an iRulesLX Workspace on a BIG-IP v12.1+ with iRules LX provisioned.

screenshot 2017-05-27 18 55 20

iRulesLX streaming interface is not yet supported, so this will just run as a daemon essentially.

Instructions for deploying on a BIG-IP may be found at: https://github.com/billchurch/WebSSH2/wiki/Deploying-to-a-BIG-IP-running-12.1-or-13.0

SHA-256 hashes:
733a9aa1f9db001e469a8e825d304c497dc9c743f46e6a7d973927015d5fb765 BIG-IP-ILX-WebSSH2-current.tgz

733a9aa1f9db001e469a8e825d304c497dc9c743f46e6a7d973927015d5fb765 BIG-IP-ILX-WebSSH2-20180210-0.2.0.tgz

Keepalive support

Choose a tag to compare

@billchurch billchurch released this 30 Jan 23:37

[0.1.4] 2018-01-30

Changed

  • Moved socket and util out of folders into .js in root.
  • added keepaliveInterval and keepaliveCountMax config options

BIG-IP Notes

The attached BIG-IP-ILX-WebSSH2-20180130-0.1.4.tgz file may be imported to as an iRulesLX Workspace on a BIG-IP v12.1+ with iRules LX provisioned.

screenshot 2017-05-27 18 55 20

iRulesLX streaming interface is not yet supported, so this will just run as a daemon essentially.

Instructions for deploying on a BIG-IP may be found at: https://github.com/billchurch/WebSSH2/wiki/Deploying-to-a-BIG-IP-running-12.1-or-13.0

b9b41e3c07df916c498c98c4f112778aaad5ae8f0930ca2e5f7a3f24f8bf3c0f BIG-IP-ILX-WebSSH2-20180130-0.1.4.tgz

Updated packages for ReDoS

Choose a tag to compare

@billchurch billchurch released this 28 Sep 22:30

Changed

  • Upgrade to debug@3.1 to eliminate ReDoS in %o formatter
  • Upgrade Express to 4.15.5 for ReDOS
  • Upgrade basic-auth to v2.0

BIG-IP Notes

The attached BIG-IP-ILX-WebSSH2-20170928-0.1.3.tgz file may be imported to as an iRulesLX Workspace on a BIG-IP v12.1+ with iRules LX provisioned.

screenshot 2017-05-27 18 55 20

iRulesLX streaming interface is not yet supported, so this will just run as a daemon essentially.

Instructions for deploying on a BIG-IP may be found at: https://github.com/billchurch/WebSSH2/wiki/Deploying-to-a-BIG-IP-running-12.1-or-13.0

SHA-256 signature:
b3be2a816d74f32ba6abf4f65c2b89152591d2fc76bce6236831c339cba9d673 *BIG-IP-ILX-WebSSH2-20170928-0.1.3.tgz

Add readyTimeout option and get var, update packages, use strict

Choose a tag to compare

@billchurch billchurch released this 21 Aug 13:52

Added

  • ssh.readyTimeout option in config.json (time in ms, default 20000, 20sec)

Changed

BIG-IP Notes

The attached BIG-IP-ILX-WebSSH2-20170821-0.1.2.tgz file may be imported to as an iRulesLX Workspace on a BIG-IP v12.1+ with iRules LX provisioned.

screenshot 2017-05-27 18 55 20

iRulesLX streaming interface is not yet supported, so this will just run as a daemon essentially.

Instructions for deploying on a BIG-IP may be found at: https://github.com/billchurch/WebSSH2/wiki/Deploying-to-a-BIG-IP-running-12.1-or-13.0

SHA-256 signature:
e81e8e6aeb88e948316413ba69c2ca27f1b4a648dd6a2c2f53b239b2e9ff2fe5 *BIG-IP-ILX-WebSSH2-20170821-0.1.2.tgz

Updated socket.io to 1.7.4

Choose a tag to compare

@billchurch billchurch released this 03 Jun 20:52

Added

  • serverlog.client and serverlog.server options added to config.json to enable logging of client commands to server log (only client portion implemented at this time)
  • morgan express middleware for logging

Changed

  • Updated socket.io to 1.7.4
  • continued refactoring, breaking up index.js
  • revised error handling methods
  • revised session termination methods

Removed

  • color console decorations from util/index.js (no longer used)
  • SanatizeHeaders function from util/index.js (no longer used)

BIG-IP Notes

The attached BIG-IP-ILX-WebSSH2-20170527-0.1.1.tgz file may be imported to as an iRulesLX Workspace on a BIG-IP v12.1+ with iRules LX provisioned.

screenshot 2017-05-27 18 55 20

iRulesLX streaming interface is not yet supported, so this will just run as a daemon essentially.

SHA-256 signature:
76f364a96c51ba1b758a365fd1ad12baaf6fe2b32a2bfd14e1d5b3d74395063f *BIG-IP-ILX-WebSSH2-20170603-0.1.1.tgz

Big Release

Choose a tag to compare

@billchurch billchurch released this 27 May 22:45

A lot of refactoring has happened. More to come. Made some pretty major changes all around so figured this was worth incrementing the minor version number. Changes outlined below.

Added

  • ChangeLog.md file
  • Support for UTF-8 characters (thanks @bara666)
  • Snyk, Bithound, Travis CI for code quality
  • Cross platform improvements (path mappings)
  • Session fixup between Express and Socket.io
  • Session secret settings in config.json
  • env variable DEBUG=ssh2 will put the ssh2 module into debug mode
  • env variable DEBUG=WebSSH2 will output additional debug messages for functions
    and events in the application (not including the ssh2 module debug)
  • using Grunt to pull js and css source files from other modules npm run build to rebuild these if changed or updated.
  • useminified option in config.json to enable using minified client side javascript (true) defaults to false (non-minified)
  • sshterm= query option to specify TERM environment variable for host, valid strings are alpha-numeric with a hyphen (validated). Otherwise the default ssh.term variable from config.json will be used.
  • validation for host (v4,v6,fqdn,hostname), port (integer 2-65535), and header (sanitized) from URL input

Changed

  • error handling in public/client.js
  • moved socket.io operations to their own file /socket/index.js, more changes like this to come
  • all session based variables are now under the req.session.ssh property or socket.request.ssh (./index.js)
  • moved SSH algorithms to config.json and defined as a session variable (..session.ssh.algorithms)
    -- prep for future feature to define algorithms in header or some other method to enable separate ciphers per host
  • minified and combined all js files to a single js in ./public/webssh2.min.js also included a sourcemap ./public/webssh2.min.js which maps to ./public/webssh2.js for easier troubleshooting.
  • combined all css files to a single css in ./public/webssh2.css
  • minified all css files to a single css in ./public/webssh2.min.css
  • copied all unmodified source css and js to /public/src/css and /public/src/js respectively (for troubleshooting/etc)
  • sourcemaps of all minified code (in /public/src and /public/src/js)
  • renamed client.htm to client-full.htm
  • created client-min.htm to serve minified javascript
  • if header.text is null in config.json and header is not defined as a get parameter the Header will not be displayed. Both of these must be null / undefined and not specified as get parameters.

Fixed

  • Multiple errors may overwrite status bar which would cause confusion as to what originally caused the error. Example, ssh server disconnects which prompts a cascade of events (conn.on('end'), socket.on('disconnect'), conn.on('close')) and the original reason (conn.on('end')) would be lost and the user would erroneously receive a WEBSOCKET error as the last event to fire would be the websocket connection closing from the app.
  • ensure ssh session is closed when a browser disconnects from the websocket
  • if headerBackground is changed, status background is changed to the same color (typo, fixed)

Removed

  • Express Static References directly to module source directories due to concatenating and minifying js/css

BIG-IP Notes

The attached BIG-IP-ILX-WebSSH2-20170527-0.1.0.tgz file may be imported to as an iRulesLX Workspace on a BIG-IP v12.1+ with iRules LX provisioned.

screenshot 2017-05-27 18 55 20

iRulesLX streaming interface is not yet supported, so this will just run as a daemon essentially.

Fixed terminal auto width, added experimental client-side logging.

Choose a tag to compare

@billchurch billchurch released this 23 Mar 22:25

Terminal geometry now properly fills the browser screen and communicates this to the ssh session. Tested with IE 11 and recent versions of Chrome/Safari/Firefox.

Added experimental support for logging (see Readme)

Update to Xterm.js 2.4.0 and set default terminal to xterm-color

Choose a tag to compare

@billchurch billchurch released this 23 Mar 15:38

Update to Xterm.js 2.4.0 and set default terminal to xterm-color

  • Mouse events should be interpreted properly now
  • Minor code formatting cleanup
  • new config option, config.ssh.term to set terminal.

v0.0.3 - Updates xterm to 2.3.0 and bug fixes

Choose a tag to compare

@billchurch billchurch released this 16 Feb 21:33
  • Fixes #7
  • Update xterm to latest (2.3.0)

v0.0.2 - Move to xterm.js

Choose a tag to compare

@billchurch billchurch released this 01 Feb 23:37

Moving terminal emulation to xterm.js, updating module version dependencies.
Fixed issue with banners not being displayed properly from UNIX hosts when only lf is used