Skip to main content

Automatic generation of SSH keys for VCS

Project description


Automatic generation of SSH keys for VCS


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 RSA 4096 bits 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.

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] [-b BITS] [-re RSA_EXPONENT] [-sl SSH_LABEL] {github,gitlab,bitbucket,gogs,gitea} url u

positional arguments:
                        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
  -b BITS, --bits BITS  bits size for RSA key
  -re RSA_EXPONENT, --rsa-exponent RSA_EXPONENT
                        rsa exponent for RSA key
  -sl SSH_LABEL, --ssh-label SSH_LABEL
                        ssh label in VCS

Example with token:
gitsshgen bitbucket 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 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.

Files for gitsshgen, version 1.2.2
Filename, size File type Python version Upload date Hashes
Filename, size gitsshgen-1.2.2-py3-none-any.whl (12.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size gitsshgen-1.2.2.tar.gz (6.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page