fetch-ssh-keys
is small shell command to get users public SSH keys
from different cloud services like GitHub.
Note
Tested only on Linux and Mac. If you test on any other platform, please me know!
fetch-ssh-keys <source name> <parameters> <output file>
For example fetch users public SSH keys from GitHub my-lovely-team
team in my-awesome-company
organization and output in SSH
authorized_keys format
# Fetch 'my-lovely-team' keys in 'my-awesome-company' organisation
fetch-ssh-keys github --organization my-awesome-company --team my-lovely-team --token YOUR-TOKEN-HERE ./the-keys
# Fetch 'ernoaapa' and 'arnested' public keys
fetch-ssh-keys github --user ernoaapa --user arnested --token YOUR-TOKEN-HERE ./the-keys
# Fetch 'ernoaapa/fetch-ssh-keys' deploy keys (requires a Github token with the `repo` or `public_repo` scope)
fetch-ssh-keys github --deploy-key ernoaapa/fetch-ssh-keys --token YOUR-TOKEN-HERE ./the-keys
Tool can be used for example to automatically update
.ssh/authorized_keys
file by giving path to .ssh/authorized_keys
as last argument and adding the script to cron job.
- Download binary from latest
release
or install with Go:
go install arnested.dk/go/fetch-ssh-keys@latest
- Give execution rights (
chmod +x fetch-ssh-keys
) and add it into your $PATH
Parameter | Required | Description |
---|---|---|
--format | No (default ssh) | Output format. Only ssh authorized_keys format supported for now |
--file-mode | No (default 0600) | File permissions when writing to a file |
--comment | No (default none) | Include COMMENT at top and bottom |
Parameter | Description |
---|---|
--organization | Name of the organization which members keys to pick |
--team | Name or slug of the team which members keys to pick |
--user | Name of the user which keys to pick |
--deploy-key | Name of the owner/repo which deploy keys to pick |
--token | GitHub API token to use for communication. Without token you get only public members of the organization. |
--public-only | Return only members what are publicly members of the given organization |
You can give --organisation
(optionally combined with --team
flag)
and/or one or more --user
or --deploy-key
flags.
The --deploy-key
parameter requires a Github token with the repo
or public_repo
scope.
go get ./...
go run main.go github --output ssh