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.
Metadata
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ssh_import_id-5.13.tar.gz | 25.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|
Security for ssh-import-id 5.13
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.