What is the public URL for the Github public keys
Asked Answered
R

5

104

I heard that there was a public URL for all users on github where you can access their public keys or they can supply that URL of all their public keys. Is this true? If so what is that URL. Does it exist for bitbucket as well?

Rumney answered 22/4, 2013 at 23:1 Comment(0)
R
176

You can get with:

curl https://github.com/<username>.keys

Replace <username> with the actual username of the GitHub user.

This is useful when you set login permission to other servers. Just save its output into ~/.ssh/authorized_keys. To append it to the end from the command line:

curl https://github.com/<username>.keys | tee -a ~/.ssh/authorized_keys

It can also be done using Github API

curl -i https://api.github.com/users/<username>/keys

For bit bucket you can use the following: (This call requires authentication.)

curl -i https://bitbucket.org/api/1.0/users/<accountname>/ssh-keys
Rumney answered 23/4, 2013 at 0:2 Comment(9)
If I know a git public key URL, how can I get access or clone the repository?Primogenial
@HàLink The public keys belong to users not repositories. I you already know the user it is pretty simple to clone all the user's public repositories.Rumney
Thanks, I have misunderstood the usage of the public key.Primogenial
This also works for enterprise versions of github. e.g. <enterprise url>/<username>.keysZamia
It seems the Bitbucket curl doesn't work, it gives me 403 forbidden.Corriveau
@holmb, according to the latest documentation, this endpoint requires authentication. I think this changed over time, I can't recall it being so when I first posted this answer. confluence.atlassian.com/bitbucket/…{accountname}/ssh-keysRumney
@fazras: Please do update the answer regarding BitBucket's change. Thanks.Gaming
@ShaneGannon In my enterprise GitHub it does not work. Perhaps it has been disabled.Soave
@Soave I'm not a GitHub admin but it sounds like something that might be disabled in some orgs. It still is open in our enterprise GitHub.Zamia
M
50

GPG public keys are now available at https://github.com/<username>.gpg

Madder answered 16/1, 2019 at 18:17 Comment(0)
C
11

In addition these also provide a way to retrieve a user's PGP keys:

GitHub:

https://github.com/USER.keys
https://gitlab.com/USER.gpg

GitLab:

https://gitlab.com/USER.keys
https://gitlab.com/USER.gpg
Canula answered 26/12, 2021 at 13:51 Comment(0)
J
10

Works for gitlab same way too.

https://gitlab.com/<username>.keys

Works nicely in bash scripts too.

#GitProvider to fetch public keys (gitlab.com,github.com)
GitProvider="gitlab.com"
GitUsername="username"
curl https://${GitProvider}/${GitUsername}.keys | tee -a ~/.ssh/authorized_keys
Jaundiced answered 29/9, 2019 at 3:31 Comment(0)
M
-2

While the keys are public you don't always want to reveal your internal hostnames from the default comment fields, so I'd recommend ssh-copy-id command if you have SSH password access, wormhole when on console and configuration management tools (like Ansible, Puppet etc) in the first place.

Molluscoid answered 11/4, 2020 at 1:5 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.