Hi @nodesocket, you can take a look how we solved it with Theo
https://theoapp.readthedocs.io/en/latest/index.html
It supports fine hosts/users grants - i.e. I can connect as "dev" user on servers "node1" and "node2" but not on "node3" - and it leverages asymmetric key signing to validate the public SSH keys.
Theo supports mysql/mariadb/sqlite/postgresql(experimental) for storing data and redis/memecached for caching.
Happy to answer any further questions!