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 查看哈希值)