............................................................................... ............................................................................... .................................hhhhhhh.................................iiii.. .................................h:::::h................................i::::i. .................................h:::::h.................................iiii.. .................................h:::::h....................................... ....ssssssssss.......ssssssssss...h::::h.hhhhh.......uuuuuu....uuuuuu..iiiiiii. ..ss::::::::::s....ss::::::::::s..h::::hh:::::hhh....u::::u....u::::u..i:::::i. ss:::::::::::::s.ss:::::::::::::s.h::::::::::::::hh..u::::u....u::::u...i::::i. s::::::ssss:::::ss::::::ssss:::::sh:::::::hhh::::::h.u::::u....u::::u...i::::i. .s:::::s..ssssss..s:::::s..ssssss.h::::::h...h::::::hu::::u....u::::u...i::::i. ...s::::::s.........s::::::s......h:::::h.....h:::::hu::::u....u::::u...i::::i. ......s::::::s.........s::::::s...h:::::h.....h:::::hu::::u....u::::u...i::::i. ssssss...s:::::s.ssssss...s:::::s.h:::::h.....h:::::hu:::::uuuu:::::u...i::::i. s:::::ssss::::::ss:::::ssss::::::sh:::::h.....h:::::hu:::::::::::::::uui::::::i s::::::::::::::s.s::::::::::::::s.h:::::h.....h:::::h.u:::::::::::::::ui::::::i .s:::::::::::ss...s:::::::::::ss..h:::::h.....h:::::h..uu::::::::uu:::ui::::::i ..sssssssssss......sssssssssss....hhhhhhh.....hhhhhhh....uuuuuuuu..uuuuiiiiiiii ............................................................................... ...............................................................................
A desktop application to manage ssh credentials, sessions and persistent tunnels.
Built using nw.js, Angular and Angular Material. The goal is to provide secure persistent SSH tunnels into private networks like AWS VPCs via a Bastion host. The tunnels can be set to auto restart after suspend/resume of your workstation.
All credentials/keys are encrypted in a JSON AES256GCM vault using lowdb.
SSH protocol support is provided by the npm project ssh2 which is a pure javascript implementation of an SSH2 client. Therefore this app does not need to depend upon OpenSSH or Putty etc being installed - it is completely self-contained.
Terminal support is provided by xterm.js.
The screen
command is leveraged for terminal persistent (multi-)sessions where
it is available on endpoints.
Please feel free to contribute.
Prebuilt zip packages for linux64, osx64 and win64 are available in Releases.
Copyright 2017-2020 Graham Lee Bevan graham.bevan@ntlworld.com
$ gulp webpack
to run a single webpack without watching for changes:
$ gulp webpackrel
$ node_modules/nw/nwjs/nw --nwapp=.
with a temp vault and debugging enabled
$ rm /tmp/v; DEBUG="sshui:*" node_modules/nw/nwjs/nw --nwapp=. --db=/tmp/v
TODO: migrate this into gulp
v0.5: this is now achieved by simply running:
$ gulp run
$ gulp e2e
$ gulp build
Creates the build in the build/
folder
$ rm /tmp/v; DEBUG="sshui:*" build/sshui/linux64/sshui --db=/tmp/v
the --db=/tmp/v
tells sshui to use a different vault db file, for testing.
$ gulp
(Uses /tmp/.sshui_v as the lowdb vault db for testing.)
$ gulp release
Release packages will be in 'release/sshui - v?.?.?/'
, ready to upload to
github Releases.