跳转到主要内容

为VCS自动生成SSH密钥

项目描述

py-gitsshgen

为VCS自动生成SSH密钥

为什么?

我为在不同的云和本地平台上托管的大量VCS重复执行相同的流程感到非常烦恼。即使在 hublab 中,也没有提供端到端设置SSH密钥以登录Git的完整解决方案。

如何使用?

该脚本生成OpenSSH密钥对,并使用PAT(个人访问令牌)或应用密码(仅限Bitbucket)将公钥推送到VCS。私钥自动放置在 ~/.ssh/{name}.pem,并附加到 ~/.ssh/config 中,以便Git自动使用OpenSSH配置获取它。假设始终使用OpenSSH。

密钥生成支持的参数 - https://asyncssh.readthedocs.io/en/latest/api.html#asyncssh.generate_private_key 私钥导出支持的参数 - https://asyncssh.readthedocs.io/en/latest/api.html#asyncssh.SSHKey.export_private_key

默认设置

  • 生成算法 - ssh-ed25519
  • 无密码
  • 使用AES256加密和SHA256散列以及bcrypt 128轮次输出私钥。

您可以使用pip安装它
pip install gitsshgen

所有操作都在终端中交互式执行

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

使用令牌的示例
gitsshgen bitbucket bitbucket.org testusername -t testtoken

如果您不提供令牌,脚本将打开浏览器到可以创建令牌的页面,并要求您输入它。
gitsshgen bitbucket bitbucket.org testusername

VCS兼容性

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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

gitsshgen-1.2.3.tar.gz (12.2 kB 查看哈希值)

上传时间

构建分发

gitsshgen-1.2.3-py3-none-any.whl (13.2 kB 查看哈希值)

上传时间 Python 3

由以下组织支持