mirror of
https://github.com/moul/sshportal.git
synced 2024-12-29 11:44:45 +08:00
Update README
This commit is contained in:
parent
7245508c76
commit
b51c90a0e9
2 changed files with 37 additions and 17 deletions
53
README.md
53
README.md
|
@ -32,23 +32,25 @@ Jump host/Jump server without the jump, a.k.a Transparent SSH bastion
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Host management
|
* Single autonomous binary (~10-20Mb) with no runtime dependencies (embeds ssh server and client)
|
||||||
* User management
|
* Portable / Cross-platform
|
||||||
* User Group management
|
* Store data in Sqlite3 or MySQL (probably easy to add postgres, mssql thanks to gorm)
|
||||||
* Host Group management
|
* Stateless -> horizontally scalable when using MySQL as the backend
|
||||||
* Host Key management
|
* Connect to remote host using key or password
|
||||||
* User Key management
|
|
||||||
* ACL management
|
|
||||||
* Connect to host using key or password
|
|
||||||
* Admin commands can be run directly or in an interactive shell
|
* Admin commands can be run directly or in an interactive shell
|
||||||
* User Roles
|
* Host management
|
||||||
* User invitations
|
* User management (invite, group, stats)
|
||||||
* Easy authorized_keys installation
|
* Host Key management (remote host key learning)
|
||||||
|
* User Key management (multile keys per user)
|
||||||
|
* ACL management (acl+user-groups+host-groups)
|
||||||
|
* User roles (admin, trusted, standard, ...)
|
||||||
|
* User invitations (no more "give me your public ssh key please")
|
||||||
|
* Easy server installation (generate shell command to setup `authorized_keys`)
|
||||||
* Sensitive data encryption
|
* Sensitive data encryption
|
||||||
* Session management
|
* Session management (see active connections, history, stats, stop)
|
||||||
* Audit log
|
* Audit log (logging every user action)
|
||||||
* Host Keys verifications shared across users
|
* Host Keys verifications shared across users
|
||||||
* Healthcheck user
|
* Healthcheck user (replying OK to any user)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -121,10 +123,12 @@ bart@foo>
|
||||||
|
|
||||||
Invite friends
|
Invite friends
|
||||||
|
|
||||||
|
*This command doesn't create a user on the remote server, it only creates an account in the sshportal database.*
|
||||||
|
|
||||||
```console
|
```console
|
||||||
config> user invite bob@example.com
|
config> user invite bob@example.com
|
||||||
User 2 created.
|
User 2 created.
|
||||||
To associate this account with a key, use the following SSH user: 'invite-NfHK5a84jjJkwzDk'.
|
To associate this account with a key, use the following SSH user: 'invite:NfHK5a84jjJkwzDk'.
|
||||||
config>
|
config>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -341,6 +345,23 @@ $
|
||||||
|
|
||||||
the `healtcheck` user can be changed using the `healthcheck-user` option.
|
the `healtcheck` user can be changed using the `healthcheck-user` option.
|
||||||
|
|
||||||
---
|
## Under the hood
|
||||||
|
|
||||||
|
* Docker first (used in dev, tests, by the CI and in production)
|
||||||
|
* Backed by (see [dep graph](https://godoc.org/github.com/moul/sshportal?import-graph&hide=2)):
|
||||||
|
* SSH
|
||||||
|
* https://github.com/gliderlabs/ssh: SSH server made easy (well-designed golang library to build SSH servers)
|
||||||
|
* https://godoc.org/golang.org/x/crypto/ssh: both client and server SSH protocol and helpers
|
||||||
|
* Database
|
||||||
|
* https://github.com/jinzhu/gorm/: SQL orm
|
||||||
|
* https://github.com/go-gormigrate/gormigrate: Database migration system
|
||||||
|
* Built-in shell
|
||||||
|
* https://github.com/olekukonko/tablewriter: Ascii tables
|
||||||
|
* https://github.com/asaskevich/govalidator: Valide user inputs
|
||||||
|
* https://github.com/dustin/go-humanize: Human-friendly representation of technical data (time ago, bytes, ...)
|
||||||
|
* https://github.com/mgutz/ansi: Terminal color helpers
|
||||||
|
* https://github.com/urfave/cli: CLI flag parsing with subcommands support
|
||||||
|
|
||||||
|
## Note
|
||||||
|
|
||||||
This is totally experimental for now, so please file issues to let me know what you think about it!
|
This is totally experimental for now, so please file issues to let me know what you think about it!
|
||||||
|
|
1
db.go
1
db.go
|
@ -1,4 +1,3 @@
|
||||||
//go:generate stringer -type=SessionStatus
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
Loading…
Reference in a new issue