Skip to main content

Automatic generation of SSH keys for VCS

Project description

py-gitsshgen

Automatic generation of SSH keys for VCS

Why?

I was incredibly tired of doing the same procedure over and over for dozens of different VCS hosted in cloud and on-prem. There was no full-pledge solution offered even in hub and lab for end-to-end setup of SSH key for login to Git across different platforms.

How to use?

The script generates OpenSSH keypair and pushes public key to VCS using PAT (Personal Access Token) or App Password (Bitbucket only). The private key automatically goes to ~/.ssh/{name}.pem + reference to it is appended to ~/.ssh/config for automatic pickup by Git with OpenSSH configuration. The setup is assumed OpenSSH always.

Supported parameters for key generation - https://asyncssh.readthedocs.io/en/latest/api.html#asyncssh.generate_private_key Supported parameters for private key export - https://asyncssh.readthedocs.io/en/latest/api.html#asyncssh.SSHKey.export_private_key

Default settings:

  • Algo for generation - ssh-ed25519
  • No passphrase
  • Output private key with cipher AES256 with SHA256 hashing and 128 rounds of bcrypt.

You can install it using pip
pip install gitsshgen

All actions are done interactively in terminal:

usage: gitsshgen [-h] [-t T] [-api API_URL] [-n N] [-a ALGO] [-ks KEY_SIZE] [-e EXPONENT] [-p PASSPHRASE] [-c CIPHER] [-r ROUNDS] [-hn HASH_NAME] [-sl SSH_LABEL]
                 {github,gitlab,bitbucket,gogs,gitea} url u

positional arguments:
  {github,gitlab,bitbucket,gogs,gitea}
                        instance type
  url                   instance url
  u                     instance username

optional arguments:
  -h, --help            show this help message and exit
  -t T                  personal application token
  -api API_URL          API URL endpoint
  -n N, --name N        name for private key
  -a ALGO, --algorithm ALGO
                        algorithm for keypair (default is ssh-ed25519)
  -ks KEY_SIZE, --key-size KEY_SIZE
                        key size (only for RSA)
  -e EXPONENT, --exponent EXPONENT
                        exponent (only for RSA)
  -p PASSPHRASE, --passphrase PASSPHRASE
                        passphrase for OpenSSH key (default is None)
  -c CIPHER, --cipher CIPHER
                        cipher for OpenSSH key (default is aes256)
  -r ROUNDS, --rounds ROUNDS
                        rounds for OpenSSH key (default is 128)
  -hn HASH_NAME, --hash-name HASH_NAME
                        hash name for OpenSSH key (default is sha256)
  -sl SSH_LABEL, --ssh-label SSH_LABEL
                        ssh label in VCS

Example with token:
gitsshgen bitbucket bitbucket.org testusername -t testtoken

If you don't provide token, script will open browser on page where you can make one, and ask you to enter it.
gitsshgen bitbucket bitbucket.org testusername

VCS Compatibility

  1. Github
  2. Gitlab
  3. Gogs
  4. Bitbucket
  5. Gitea

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitsshgen-1.2.3.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

gitsshgen-1.2.3-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file gitsshgen-1.2.3.tar.gz.

File metadata

  • Download URL: gitsshgen-1.2.3.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for gitsshgen-1.2.3.tar.gz
Algorithm Hash digest
SHA256 e9e3235d532fdc60c3153ca4881f98ceb1f64b9955601e72d147c174a46a1523
MD5 5c7d0c862b316da12201f1ea493efa5f
BLAKE2b-256 1382e80dd6820df8f8b5fb0176b8daad9843ab73f848cf2653fb945d1dfdb4ce

See more details on using hashes here.

File details

Details for the file gitsshgen-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: gitsshgen-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for gitsshgen-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b4d7f030397c12595ca8c12d92c779018a793454aa5af4783965e5f0f633f6e6
MD5 fdfadf48c3525c8076b2d0b9ecdbfea8
BLAKE2b-256 f227ef9b3af9d88a5a214960291e62884dc4a58ecd6655b8cbc793b55ffe7443

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page