Public Key Manager is designed to generate authorized_keys file and to distribute those to specified servers.
This program can be used to manage the public keys on multiple servers. Specify in a configuration file which users with their public keys have permission to login to which server with a specific username.
Publickeymanager is usefull if you have multiple users logging in to shared accounts on multiple servers.
The config file has the following options:
[keys] Specify one public key per user. [group:`users`] Use this if you want to bundle multiple users to one group. Say for example a sysadmin group. [group:`name`] Specify a group of servers. `name` is the name of the group. A config file can hold multiple [group:`name`] directives.
Options for [group:name]
The options for the group:
user_groups A reference to groups defined in [group:`users`]. All users in the group have access to the servers in this group. access Which individual users have access to servers in this group. servers A list of servers which belong to this group. [server:`name`] Specify a server. A config file can hold multiple [server:`name`] directives. The name is the name of the server. A name can be referenced in a server group.
Options for [server:name]
The options for the server:
hostname The hostname of the server. user The username that is used to login to the server. groups Define which groups have access to this server. Groups need to exist in [group:`name`] access Define which users have access to this server. Users need have a key file mentioned in [keys].
Example Config File
An example config file which shows all options:
[keys] roland=rvanlaar.pub example_user=example.pub example_user2=example2.pub [group:users] sysadmin = roland [group:remote] user_groups = sysadmin access = example_user1 servers = example_server1 example_server2 [server:localhost] hostname = 127.0.0.1 user = roland groups = sysadmin access = example [server:example_server1] hostname = example.com user = example [server:example_server2] hostname = example.org user = example
- New authorized_keys file will have the same permissions as the old one.
- Added check. A server needs to have at least one user that will have access to it.
- Added time.sleep(1); Needed for a correct move via shell.send.
- Fixed parse bug for group:users
- Fixed parse bug for group:users.
- [group:user] renamed to [group:users].
- Removed old pdb line.
- Fixed broken function parse_config.
- Added Changes and Readme to long description.
- The directory for the public keys can be chosen with -d.
- Added more explanatory error messages.
- Fixed egg install.
- Released the first version to pypi.