We have dozens of Linux servers, and several developers, and each of the developer covers parts of the servers.
Currently each server has an admin account, if someone want's to manage that server, his pubkey will be added to the server admin account's ssh authorized_keys, so he can access and edit this server. But is not a good solution:
- Each server's ssh port should not open to the public, it is dangerous.
- If one server is accessed by multiple person with the same account, we cannot tell who is logged in.
- It is hard to remove or revoke someone's ssh key for those server's.
So I think there should be a better solution:
- One centralized ssh audit and administration server.
- Each server only allow ssh port access from this server.
- This server can manage users account, and access privileges for each server.
- Developer use this audit server to do server ops, all the actions should be recorded and alert others when he is doing something dangerous.
- If this server is down, there are emergency access solution.
If anyone knows any solution like this? Thanks.