diff --git a/README.md b/README.md
index 8b9d95dc..b4189610 100644
--- a/README.md
+++ b/README.md
@@ -28,6 +28,8 @@ SSH Piper works as a proxy-like ware, and route connections by `username`, `src
## Install
+### with Go
+
```
go get -u github.com/tg123/sshpiper/sshpiperd
```
@@ -38,18 +40,12 @@ with pam module support
go get -u -tags pam github.com/tg123/sshpiper/sshpiperd
```
-## Docker image
+### with [Docker image](https://registry.hub.docker.com/u/farmer1992/sshpiperd/)
```
docker run farmer1992/sshpiperd
```
-## snap
-
-```
-sudo snap install sshpiperd
-```
-
Run [:question: what is WORKING_DIR](#files-inside-working-dir)
```
@@ -71,6 +67,23 @@ docker run -d -p 2222:2222 \
farmer1992/sshpiperd
```
+### with [Snap](https://snapcraft.io/sshpiperd)
+
+```
+sudo snap install sshpiperd
+```
+
+configure with snap
+
+```
+sudo snap set sshpiperd 'port=3333'
+
+sudo snap restart sshpiperd
+```
+
+_NOTE:_ Default working dir for snap verion is `/var/snap/sshpiperd/common`
+
+
## Quick start
Just run `showme.sh` in [sshpiperd exmaple directory](sshpiperd/example)
@@ -105,65 +118,50 @@ Permission denied (publickey).
* sshpiperd manpage | man -l /dev/stdin
```
-OPTIONS
- sshpiperd
- -l, --listen
- Listening Address
+$ ./sshpiperd -h
+Usage:
+ sshpiperd [OPTIONS] [command]
- -p, --port
- Listening Port
+SSH Piper works as a proxy-like ware, and route connections by username, src ip , etc. Please see for more information
- -i, --server-key
- Server key file for SSH Piper
+sshpiperd:
+ -l, --listen= Listening Address (default: 0.0.0.0) [$SSHPIPERD_LISTENADDR]
+ -p, --port= Listening Port (default: 2222) [$SSHPIPERD_PORT]
+ -i, --server-key= Server key file for SSH Piper (default: /etc/ssh/ssh_host_rsa_key) [$SSHPIPERD_SERVER_KEY]
+ -u, --upstream-driver= Upstream provider driver (default: workingdir) [$SSHPIPERD_UPSTREAM_DRIVER]
+ -c, --challenger-driver= Additional challenger name, e.g. pam, empty for no additional challenge [$SSHPIPERD_CHALLENGER]
+ --auditor-driver= Auditor for ssh connections piped by SSH Piper [$SSHPIPERD_AUDITOR]
+ --log= Logfile path. Leave empty or any error occurs will fall back to stdout [$SSHPIPERD_LOG_PATH]
+ --config= Config file path. Will be overwriten by arg options and environment variables (default: /etc/sshpiperd.ini) [$SSHPIPERD_CONFIG_FILE]
- -u, --upstream-driver
- Upstream provider driver
+upstream.mysql:
+ --upstream-mysql-host= mysql host for driver (default: 127.0.0.1) [$SSHPIPERD_UPSTREAM_MYSQL_HOST]
+ --upstream-mysql-user= mysql user for driver (default: root) [$SSHPIPERD_UPSTREAM_MYSQL_USER]
+ --upstream-mysql-password= mysql password for driver [$SSHPIPERD_UPSTREAM_MYSQL_PASSWORD]
+ --upstream-mysql-port= mysql port for driver (default: 3306) [$SSHPIPERD_UPSTREAM_MYSQL_PORT]
+ --upstream-mysql-dbname= mysql dbname for driver (default: sshpiper) [$SSHPIPERD_UPSTREAM_MYSQL_DBNAME]
- -c, --challenger-driver
- Additional challenger name, e.g. pam, empty for no additional challenge
+upstream.workingdir:
+ --workingdir= Path to workingdir (default: /var/sshpiper) [$SSHPIPERD_WORKINGDIR]
+ --workingdir-allowbadusername Disable username check while search the working dir [$SSHPIPERD_WORKINGDIR_ALLOWBADUSERNAME]
+ --workingdir-nocheckperm Disable 0400 checking when using files in the working dir [$SSHPIPERD_WORKINGDIR_NOCHECKPERM]
- --auditor-driver
- Auditor for ssh connections piped by SSH Piper
+challenger.welcometext:
+ --challenger-welcometext= Show a welcome text when connect to sshpiper server [$SSHPIPERD_CHALLENGER_WELCOMETEXT]
- --log
- Logfile path. Leave empty or any error occurs will fall back to stdout
+auditor.typescript-logger:
+ --auditor-typescriptlogger-outputdir= Place where logged typescript files were saved (default: /var/sshpiper) [$SSHPIPERD_AUDITOR_TYPESCRIPTLOGGER_OUTPUTDIR]
- --config
- Config file path. Higher priority than arg options and environment variables
+Help Options:
+ -h, --help Show this help message
- upstream.mysql
- --upstream-mysql-host
- mysql host for driver
-
- --upstream-mysql-user
- mysql user for driver
-
- --upstream-mysql-password
- mysql password for driver
-
- --upstream-mysql-port
- mysql port for driver
-
- --upstream-mysql-dbname
- mysql dbname for driver
-
- upstream.workingdir
- --workingdir
- Path to workingdir
-
- --workingdir-allowbadusername
- Disable username check while search the working dir
-
- --workingdir-nocheckperm
- Disable 0400 checking when using files in the working dir
-
- challenger.welcometext
- --challenger-welcometext
- Show a welcome text when connect to sshpiper server
-
- auditor.typescript-logger
- --auditor-typescriptlogger-outputdir
- Place where logged typescript files were saved
+Available commands:
+ dumpconfig dump current config ini to stdout
+ genkey generate a 2048 rsa key to stdout
+ manpage write man page to stdout
+ options list all options
+ plugins list support plugins, e.g. sshpiperd plugis upstream
+ version show version
```