Now you can configure your security with this simple ansible playbook. Remember that dicts in parent group merges with dicts in child groups.
Infrastructure:
```
-- hetzner --|
|- hetzner-balancers
|- hetzner-nodes
```
All servers will be available to the administrator and assistant, servers must have own internal key for files copying. Configuring parent ```hetzner```group:
You can set additional SSHd options like code below, see defaults of ssh_config role.
```
sshd_config_path: "/etc/ssh/sshd_config"
sshd_options:
PubkeyAuthentication: "yes"
PasswordAuthentication: "no"
```
No need to make additional config for ```hetzner-balancers``` because access list will be inherited, only admins accessible.
**Using master key**
Warning! Playbook will delete all public keys in root's ```.ssh/authorized_keys``` file and setup own **super** key, only after this public keys in group_vars and host_vars will be added into assigned users ```.ssh/authorized_keys``` files. If you do not want to lost already installed pubkeys then add all of them to this playbook before first run.
**Security issue!** You need to generate your own super key! Run ```ssh-keygen -f superkey``` and replace keys in ```secret/``` directory. DO NOT USE DEMO KEY!
Read documentation on wiki pages here https://git.blindage.org/21h/ansible-ssh-management/wiki/