Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hpello/sshmon
Manage and monitor SSH connections.
https://github.com/hpello/sshmon
autossh devops monitor ssh sysadmin tunnel
Last synced: 3 months ago
JSON representation
Manage and monitor SSH connections.
- Host: GitHub
- URL: https://github.com/hpello/sshmon
- Owner: hpello
- License: mit
- Created: 2018-05-06T11:47:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-09T13:13:14.000Z (7 months ago)
- Last Synced: 2024-06-18T21:50:41.761Z (5 months ago)
- Topics: autossh, devops, monitor, ssh, sysadmin, tunnel
- Language: TypeScript
- Size: 793 KB
- Stars: 186
- Watchers: 5
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SSHMon
SSHMon is a program designed to manage and monitor ssh connections.
It has been tested on Linux and OSX with SSH ≥ 6.7.![gui-sample.png](https://s7.postimg.cc/elzqf92gp/gui-sample.png)
## How it works
SSHMon builds on top of the SSH "Control Master" feature, that facilitates port forwarding setup.
## Disclaimer
- SSHMon Features (e.g. SSH host definition and connection) are exposed through the GUI. As a consequence, extreme care should be taken to make sure it is only reachable by you. Use at your own risk.
- SSHMon is still at an early stage of development, as a result some things might not work and we might introduce some breaking changes... Any feedback will be greatly appreciated!## Features
- Nice GUI
- SSH port/socket forwarding management
- Configuration with YAML file
- Automatic start and retry of connection and port forwarding
- HTTP forwarding## Get started
Download the [latest release](https://github.com/hpello/sshmon/releases/latest) of SSHMon for your system and unpack it. Run the `sshmon` binary:
```bash
./sshmon
```Then you can access the web GUI at .
Go and have a look at the [Tutorial](docs/tutorial.md) to set up your first host!
### Build from source
```bash
yarn
yarn build
yarn start
```## Configure
You can set up SSH connections through the GUI or with a configuration file.
By default, SSHMon will create a config file located at `~/.sshmon/config.yml`.
You also may specify your own configuration file on the command line.Head over to the [Configuration](docs/configuration.md) page for more details.
## Logging
Logging is handled by the [bunyan](https://github.com/trentm/node-bunyan) library. A `bunyan` process is launched along with SSHMon and writes logs to stderr.
By default, if stderr is a TTY, the logs are pretty-printed, else they are written in a JSON format.
You may use the `BUNYAN_OPTS` environment variable to choose which args are passed to the `bunyan` process, e.g.:```bash
BUNYAN_OPTS='-l debug' ./sshmon
```## Test
Docker and docker-compose are required.
You may run the test suite with:
```bash
yarn test
```## Troubleshooting
- So far, only public/private key authentication is supported.
- Before trying to connect to a host through SSHMon, make sure you can connect to it with SSH on the command line.## Built with
SSHMon was developped thanks to the following projects (this list is not exhaustive!):
- [TypeScript](https://www.typescriptlang.org/)
- [React](https://reactjs.org/)
- [Redux](https://redux.js.org/)
- [Bulma](https://bulma.io/)
- [Bulmaswatch](https://jenil.github.io/bulmaswatch/)
- [Socket.IO](https://socket.io/)
- [Bunyan](https://github.com/trentm/node-bunyan)
- [pkg](https://github.com/zeit/pkg)## TODO
- Allow to change GUI address
- Offer multiple GUI themes
- Allow custom global SSH config options
- Use BatchMode for `ProxyJump` SSH hosts