Update README

This commit is contained in:
Manfred Touron 2017-12-13 11:25:21 +01:00
parent 7245508c76
commit b51c90a0e9
2 changed files with 37 additions and 17 deletions

View file

@ -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
View file

@ -1,4 +1,3 @@
//go:generate stringer -type=SessionStatus
package main package main
import ( import (