21

I couldn't find a way to get my or other people's public key from Github, but the Ubuntu Server installer can.

How can it and how could I get an ssh public key via GitHub username in a script myself?

u15p7fgy863eiq5
  • 334
  • 2
  • 8

4 Answers4

36
curl -O https://github.com/<username>.keys 
curl -O https://gitlab.com/<username>.keys

will retrieve the public keys uploaded for the given username. Both github and gitlab work.

Thorbjørn Ravn Andersen
  • 4,412
  • 4
  • 21
  • 32
Rinzwind
  • 293,910
  • 41
  • 570
  • 710
9

In this particular instance ssh-import-id retrieves an SSH key from GitHub for you. The tool can import from both GitHub and Launchpad. Normally the tool takes the retrieved key and adds it to your authorized keys file which is what Ubuntu Server would have been doing. The manual page outlines the mechanics of the specific API calls it makes to retrieve the key.

  • Is there ssh-import-id for Red Hat based systems as well? I couldn't find it in the default repositories for CentOS (epel) & Fedora. – u15p7fgy863eiq5 Jan 01 '20 at 15:44
  • 1
    @u15p7fgy863eiq5 The utility was written by Dustin Kirkland so it is a solution born in the Ubuntu world. To use it in the Red Hat-based world you could secure it via PyPi: https://pypi.org/project/ssh-import-id/. – Stephen Michael Kellat Jan 01 '20 at 16:08
3

In addition to Rinzwind's answer, Github has an API for this.

The API is not the URL described by Rinzwind, but it appears to be in addition to that.

vidarlo
  • 21,954
  • 8
  • 58
  • 84
1

The exact usage is ssh-import-id gh:github_username

See the manpages

piouson
  • 129
  • 3