https://github.com/bakyazi/sshman
A simple terminal UI for managing SSH sessions
https://github.com/bakyazi/sshman
go golang ssh tview ui
Last synced: 4 months ago
JSON representation
A simple terminal UI for managing SSH sessions
- Host: GitHub
- URL: https://github.com/bakyazi/sshman
- Owner: bakyazi
- License: mit
- Created: 2021-12-14T21:11:24.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-16T07:52:00.000Z (over 4 years ago)
- Last Synced: 2024-06-19T18:12:14.817Z (almost 2 years ago)
- Topics: go, golang, ssh, tview, ui
- Language: Go
- Homepage:
- Size: 7.49 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sshman
A simple terminal UI for managing SSH sessions
sshman uses your unix current user and it creates an account for you. All account and session infos are stored in sqlite located at `$HOME/.sshman`. I tried to make it safe as possible as I can. Account passwords are stored as hashed and SSH session passwords are stored as encrypted by using your account password as key.
[//]: # (## sign-up screen)
[//]: # ()
[//]: # (If your username is not found on DB. This screen meets you to assign your password. This password is important because you will be ask for your password to login.)
[//]: # ()
[//]: # ()
[//]: # (## log-in screen)
[//]: # ()
[//]: # (When you sign-up successfully or execute sshman again, you will be met by this simple screen and you will be asked for your password.)
[//]: # ()
[//]: # (## main screen)
[//]: # ()
[//]: # (After succesfull sign-in, you should see main screen. This screen consist of two part `Actions` and `Saved Sessions`. There are 4 actions:)
[//]: # (- **New Connection**: It opens new screen to save SSH connection)
[//]: # (- **Connect**: It makes you choose a session in next section. After choosing a session, you will be immediately connected to remote machine.)
[//]: # (- **Delete**: It makes you choose a session in nextion to delete.)
[//]: # (- **Quit**: no comment :))
[//]: # ()
[//]: # (## new connection screen)
[//]: # ()
[//]: # ()
[//]: # (## other screenshots)
[//]: # ()
## install
### go
> $ go install github.com/bakyazi/sshman@v0.0.2
### source code
> $ git clone https://github.com/bakyazi/sshman \
> $ cd sshman \
> $ go mod download \
> $ go run *.go
### docker
> $ docker run --rm -it -v $HOME:/root 'bakyazi/sshman:v0.0.2' /bin/bash
you can defina an alias(recommended)
> alias sshman="docker run --rm -it -v $HOME:/root 'bakyazi/sshman:v0.0.2' /bin/bash"
## demo

## dependencies
ui: [this](https://github.com/rivo/tview)
ssh-client: [this](github.com/nanobox-io/golang-ssh)
DB/sqlite: [this](https://gorm.io/)
## roadmap
- [ ] grouping sessions
- [X] ssh key option (current just username&password)
- [ ] maybe more fancy modals for login/signup/new connection screens