跳转到主要内容

VM自动生成SSH密钥

项目描述

py-vmsshgen

自动为VM生成SSH密钥。

为什么?

我为在数百个VM之间手动配置SSH密钥而感到厌倦。

如何使用?

该脚本生成OpenSSH密钥对,并使用现有的SSH连接(可以由密码保护或另一个SSH密钥)将公钥推送到VM。客户端机器(执行此应用程序的机器)上的私钥自动放入~/.ssh/{name}.pem,并在~/.ssh/config中添加对其的引用,以便SSH客户端配置自动获取。

密钥生成支持的参数 - 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 vmsshgen

所有操作都在终端中交互式完成

usage: vmsshgen [-h] [-n N] [-a ALGO] [-ks KEY_SIZE] [-e EXPONENT] [-p PASSPHRASE] [-c CIPHER] [-r ROUNDS] [-hn HASH_NAME] host {password,privatekey} username pf

positional arguments:
  host                  VM hostname:port (example localhost:22)
  {password,privatekey}
                        login type
  username              VM username
  pf                    Password file location

optional arguments:
  -h, --help            show this help message and exit
  -n N, --name N        name for public/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)

以下是在linuxserver.io上使用密码文件(名为pf,存储密码password)的示例
vmsshgen -n test localhost:2222 password linuxserver.io pf

当然,如果您想在同一个命令行语句中提供密码,可以使用FIFO管道选项
vmsshgen -n test localhost:2222 password linuxserver.io <(echo 'password')

(坦白说,如果您决定选择这个选项,我建议您确保当前shell的历史记录已禁用,或者您在命令前输入空格以避免在历史记录中泄露密码)

项目详情


下载文件

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

源代码分发

vmsshgen-1.0.2.tar.gz (8.7 kB 查看哈希值)

上传时间 源代码

构建分发

vmsshgen-1.0.2-py3-none-any.whl (9.5 kB 查看哈希值)

上传时间 Python 3

由以下支持