This is a simple SSH users management tool which able to do following operations over described servers:
- list SSH users
- search over SSH users
- add SSH users
- delete SSH users
- set name (rename) SSH users
All SSH operations performed by the user you log in.
This tool parses ~/.ssh/authorized_keys and operates its contents due to selected operation.
It is total CLI:
usage: sshcenter.py [-h] [--config CONFIG] [--group]
                    name {list,search,add,del,setname} ...
SSH Users Center
positional arguments:
  name                  Server or group name
  {list,search,add,del,setname}
                        Commands
    list                List users
    search              Search user
    add                 Add user
    del                 Delete user
    setname             Set username for public key
optional arguments:
  -h, --help            show this help message and exit
  --config CONFIG, -c CONFIG
                        Config file (default: config.json)
  --group, -g           Group name
{
	"default" : {
		"keyfile": "",
		"password": "",
		"user": ""
	},
	"servers": {
		"local": {
			"host": "127.0.0.1"
		},
		"remote": {
			"host": "8.8.8.8"
		}
	},
	"groups": {
		"all": [".*"],
		"local": ["local"]
	}
}
List all descibed users on server remote:
python3 sshcenter.py remote list
Search user Rookie whoose public key has *pub_key* substring on each server in group all (all servers: local and remote):
python3 sshcenter.py -g all search -u Rookie -k pub_key
Add user public key AAAAB3Nza...CtBYmxQ9Nb of user Rookie@Gmail.com to each server in group local:
python3 sshcenter.py -g local add Rookie@Gmail.com AAAAB3Nza...CtBYmxQ9Nb
Delele user Rookie@Gmail.com from local server:
python3 sshcenter.py local del Rookie@Gmail.com
Rename user Rookie@Gmail.com on all servers:
python3 sshcenter.py -g all setname AAAAB3NzaC Expert@Gmail.com