Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Put public keys for a github user in ~/.ssh/authorized keys with mucho ease
IFS="$(printf '\n\t')"
mkdir -p ~/.ssh
if ! [[ -f ~/.ssh/authorized_keys ]]; then
echo "Creating new ~/.ssh/authorized_keys"
touch ~/.ssh/authorized_keys
fi
user=$1
keys=`curl https://api.github.com/users/$user/keys | grep -o -E "ssh-\w+\s+[^\"]+"`
for key in $keys; do
echo $key
grep -q "$key" ~/.ssh/authorized_keys || echo "$key" >> ~/.ssh/authorized_keys
done
@rtlong

This comment has been minimized.

Copy link
Owner Author

rtlong commented Oct 2, 2013

Use this like so:

$ curl -L http://bit.ly/gh-keys | bash -s <github username>

http://bit.ly/gh-keys redirects to the raw version of this script; curl's -L tells it to follow redirects, and bash's -s tells it to use STDIN as the script and the arguments as the positional parameters

@musically-ut

This comment has been minimized.

Copy link

musically-ut commented Dec 2, 2015

At the time of writing, https://github.com/musically-ut.keys will output the keys in authorized_keys friendly format and in plain text. That will avoid having to grep through the JSON looking for the keys.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.