Skip to main content

ssh-import-id

You're logged onto a cloud instance working on a problem with your fellow devs, and you want to invite them to log in and take a look at these crazy log messages. What do?

Oh. You have to ask them to cat their public SSH key, paste it into IRC (wait, no, it's id_rsa.pub, not id_rsa silly!) then you copy it and cat it to the end of authorized_hosts.

That's where ssh-import-id comes in. With ssh-import-id, you can add the public SSH keys from a known, trusted online identity to grant SSH access.

Currently supported identities include GitHub, GitLab, and Launchpad.

Usage

ssh-import-id uses short prefix to indicate the location of the online identity. For now, these are:

'gh:' for GitHub
'gl:' for GitLab
'lp:' for Launchpad

Command line help:

usage: ssh-import-id [-h] [-o FILE] USERID [USERID ...]

Authorize SSH public keys from trusted online identities.

positional arguments:
  USERID                User IDs to import

optional arguments:
  -h, --help            show this help message and exit
  -o FILE, --output FILE
                        Write output to file (default ~/.ssh/authorized_keys)

Example

If you wanted me to be able to ssh into your server, as the desired user on that machine you would use:

$ ssh-import-id gh:cmars

You can also import multiple users on the same line, even from different key services, like so:

$ ssh-import-id gh:cmars lp:kirkland gl:username

For self-hosted GitLab instances, set the GITLAB_URL environment variable:

$ GITLAB_URL=https://gitlab.example.com ssh-import-id gl:username

Used with care, it's a great collaboration tool!

Installing

ssh-import-id can be installed on Python >= 2.6 with a recent version of pip:

$ pip install ssh-import-id

ssh-import-id requires a recent version of Requests (>=1.1.0) for verified SSL/TLS connections.

Extending

You can add support for your own SSH public key providers by creating a script named ssh-import-id-prefix. Make the script executable and place it in the same bin directory as ssh-import-id.

The script should accept the identity username for the service it connects to, and output lines in the same format as an ~/.ssh/authorized_keys file.

If you do develop such a handler, I recommend that you connect to the service with SSL/TLS, and require a valid certificate and matching hostname. Use Requests.get(url, verify=True), for example.

Credits

This project is authored and maintained by Dustin Kirkland, Scott Moser, and Casey Marshall.

Release files for ssh-import-id 5.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ssh-import-id 5.13
File Size Uploaded
ssh_import_id-5.13.tar.gz 25.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ssh-import-id 5.13
File Interpreter ABI Platform
ssh_import_id-5.13-py3-none-any.whl Python 3 none any Details

Total release size: 53.0 kB

Release files / ssh_import_id-5.13.tar.gz

Download URL ssh_import_id-5.13.tar.gz
Size 25.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d44bfb6d313abc865643d8b3aa9e6999c1a430a93eebe97f30a41773af15d2d1
BLAKE2b-256 checksum
How to use checksums
21dc9b279d9b8e8afaa8978aa92cec923a09a59eab4417ac721a6295ae4e9a72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / ssh_import_id-5.13-py3-none-any.whl

Download URL ssh_import_id-5.13-py3-none-any.whl
Size 27.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
65a992ad32d784da0ebb258e6a1875dd801bca29fd8f5fad0331228b2ff1348d
BLAKE2b-256 checksum
How to use checksums
5d8e21ec3637b7c0b9146f84302990dca7740217f22a5c1974d32136f7a7a5d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

5.13 This release

2 release files

5.11

1 release file

5.10

1 release file

5.9

1 release file

5.8

1 release file

5.7

1 release file

5.6

1 release file

5.5

1 release file

5.4

1 release file

5.3

1 release file

5.2

1 release file

5.1

1 release file

5.0

1 release file

4.5

1 release file

4.4

1 release file

4.3

1 release file

4.1

1 release file

3.21

1 release file

3.20

1 release file

3.19

1 release file

3.18

1 release file

3.17

1 release file

3.16

1 release file

3.15

1 release file

3.14

1 release file

3.13

1 release file

3.12

1 release file

3.11

1 release file

3.10

1 release file

3.9

1 release file

3.8

1 release file

3.7

1 release file

3.6

1 release file

3.4

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page