https://github.com/gbevan/sshui
Desktop app for SSH xterm sessions and persistent tunnels with vaulted credential store
https://github.com/gbevan/sshui
angular desktop lowdb nwjs persistent-tunnels reattachable-terminals screen ssh ssh-tunnel tunnel vault xterm
Last synced: 8 months ago
JSON representation
Desktop app for SSH xterm sessions and persistent tunnels with vaulted credential store
- Host: GitHub
- URL: https://github.com/gbevan/sshui
- Owner: gbevan
- License: gpl-3.0
- Archived: true
- Created: 2017-12-09T21:07:03.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-04-19T15:55:35.000Z (over 2 years ago)
- Last Synced: 2025-02-10T12:12:31.946Z (8 months ago)
- Topics: angular, desktop, lowdb, nwjs, persistent-tunnels, reattachable-terminals, screen, ssh, ssh-tunnel, tunnel, vault, xterm
- Language: TypeScript
- Homepage:
- Size: 1.69 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sshui
|  |  |
|-|-|
...............................................................................
...............................................................................
.................................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](https://github.com/typicode/lowdb).SSH protocol support is provided by the npm project
[ssh2](https://github.com/mscdex/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](https://github.com/xtermjs/xterm.js).
The `screen` command is leveraged for terminal persistent (multi-)sessions where
it is available on endpoints.Please feel free to contribute.
## Downloads
Prebuilt zip packages for linux64, osx64 and win64 are available in
[Releases](https://github.com/gbevan/sshui/releases).## Screenshots
### Login

### Sessions

### Local Tunnels

### Unlock
## COPYRIGHT
Copyright 2017-2020 Graham Lee Bevan
## LICENSE
[GPL-3.0](https://github.com/gbevan/sshui/blob/master/LICENSE)
## Developer Notes
### Start webpack in watch mode for continuous builds while developing
```bash
$ gulp webpack
```
to run a single webpack without watching for changes:
```bash
$ gulp webpackrel
```
### Run the app using nw.js direct from source (no build)
```bash
$ node_modules/nw/nwjs/nw --nwapp=.
```
with a temp vault and debugging enabled
```bash
$ rm /tmp/v; DEBUG="sshui:*" node_modules/nw/nwjs/nw --nwapp=. --db=/tmp/v
```
TODO: migrate this into gulpv0.5: this is now achieved by simply running:
```bash
$ gulp run
```
### Run the protractor E2E UI test suite
```bash
$ gulp e2e
```
### Build package with SDK for debugging
```bash
$ gulp build
```
Creates the build in the `build/` folder### Run the built development package with debugging and a temp vault
```bash
$ 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.### Run the app in continuous source edit/webpack with watch modes
```bash
$ gulp
```
(Uses /tmp/.sshui_v as the lowdb vault db for testing.)### To build the Release zip files
```bash
$ gulp release
```
Release packages will be in `'release/sshui - v?.?.?/'`, ready to upload to
github Releases.