如何在没有密码的情况下编写 ssh-keygen 脚本

如何在没有密码的情况下编写 ssh-keygen 脚本

我需要生成配置为主/从类型的 vagrant 镜像。从属节点需要具有对主节点的 SSH 访问权限,并且将有数万个从属实例。

Vagrant 提供 Puppet 和 Chef 供应器,因此我使用 Puppet,因为它已经在基础设施中运行,所以在这里维护起来应该更容易。

我正在执行以下操作来在生成将成为我的图像的实例的节点上生成 SSH 密钥,如下所示:

ssh-keygen -t rsa -N "" -f keys/id_rsa_medusa

不幸的是,这似乎生成了仍然需要密码的 SSH 密钥。我也在 Ubuntu 主机上生成这些密钥,并使用 puppet 将它们拉入 vagrant 实例,但这似乎不起作用。

我可以使用哪一个 1 行或脚本来实际生成具有空密码的 ssh 密钥?

笔记:

这不管用,

echo -e '\n \n' | ssh-keygen -t rsa -f keys/id_rsa_medusa

奖金:

ssh-keygen 正在使用基本主机的身份创建密钥。通常,您会从尝试 ssh 的主机生成这些密钥,然后通过 ssh-copy-id 将它们复制到尝试连接的主机。在这种情况下,生成密钥的机器的主机 ID 不是主机。如何生成允许任何主机访问服务器主机的通用密钥?

由于这是 vagrant(无头木偶),我无法在实例之间复制密钥,因为当我登录时,它们不知何故都具有相同的 IP 地址。我尝试在基本主机上生成密钥,然后使用以下命令转换为 PEM 格式,但它也不起作用:

ssh-keygen -f keys/id_rsa_medusa -e -m pem > keys/id_rsa_medusa.pem

谢谢。

答案1

这对我有用:

ssh-keygen -t rsa -N '' -f foo.rsa

将文件名更改为您想要的。请注意使用 ' 而不是 "

不确定第二位是什么意思...生成的密钥不是已经是 PEM 了吗?

$ ssh-keygen -t rsa -N '' -f foo.rsa
Generating public/private rsa key pair.
Your identification has been saved in foo.rsa.
Your public key has been saved in foo.rsa.pub.
The key fingerprint is:
56:45:5d:54:a6:11:86:63:20:c9:b7:f3:b8:ba:c0:11 ssta@debianscratch
The key's randomart image is:
+---[RSA 2048]----+
|       ....ooo++*|
|        o...+..+ |
|      E  ..o ..  |
|       . .o      |
|      . S  +     |
|     . o  . .    |
|      o    .     |
|       .  .      |
|        oo       |
+-----------------+
$ file foo.rsa
foo.rsa: PEM RSA private key
$ cat foo.rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1xfyJbRRB1DOQpHFzzxR6s9z2iPX1U2q0WSbs/G9wWq/Wb7W
GhI6kNfU15n4IIj/DsdDy6ePGWDnGREo89v72svRpMz2nnAXmcg6XSr7LGnDlFvW
X6hST35RUIuha0AD8+vxRsCfH3FFaXb7Ns1lAgMI7eJ+2FSjY5pLrTFsoPyHD9Vn
CLeGhEkpCqs0KsPgEkzQmdJdzeeEDbnjy3QEWR7OiH91e6uV7Mp5oA39zDXw1Gog
d8+m7r89CAwRRqm/q9v9c27UflB65mrx87OIVfeZhj/cLlWGynSn/tBbgNkKifn8
PmqJKi4xvuN5U1+wgUBi2I9VVVga9JXutUGzAQIDAQABAoIBAQCAAH8ZExK5cMwe
b5OxPSteunAuW/BAvwStsdq7HlyXcwhGxzuwrjJuKhM+7yDrc7udttXQp3mQV8uP
blfZr4tU7MBo+5S0Ou7AlJivAzoQdyxt6K1NpeS96+VGMqIwKhtwGHQwb8cCNi1h
ku3y8g5vQREaSBTGdq/5QURR4DzOHAHgwxjGGFwB9dFPal0APrahqybaGXF7ir3M
JQlg3CdX7K7xN009V8dL5rN4q3CrrU1yUYcKK6EdkQEcy2a8MtY96VZAVx/Bcpab
rwK7mdG95GGJMVQ4RlLAdQ7GIn1XBhFxkMP3wHThdsWqD/QLgYK/97IDzN0UaLb9
bSsTrX61AoGBAPvxSglrwVe5l92RYhX43QsCeRw0Vs9/FIcJGEO7+MWZt8v3wBRg
B331mvGr0iudssKVr25Q9NxQGhd72MD1d8aGBBZr5JUIxKCmKCfig6/J/vs6LqJg
XWoiN/YZ1/jXJKU8UCbLHvlYAxUb+0DgPZWRnMIG2WKR3bJnNLwY6AZTAoGBANqO
vD5oLHI24xSatGp1ENRCLipXlArHps+TpBBHNllFonk8RlMCzzvx0P6uF5DxJXkd
olQG5aPJQ5G/tfjQ5I4oSAbJsuDFSg4oJcLIodHd16G7nZzN7swr8ZUQeWqF7AdP
a9IgKP+f/vfznPo4exc+eBb5Ktbxn7whQex+7U7bAoGAMiAkmdE9i2WaiHO3byWv
XNRmIi1rpCblf6RYlolcinv17HfjWGpusyndZP3Jd/INMde0Kp+ix/6L4mY6jtGH
vhDF2Wwn81rmPAwy6xSPHLd0qqk9xAKmM0qRlb44kQLFALcKP12kUPmoy1dg2tyC
hDKPXK8eKxVYZXlRLadK6o8CgYBN8wZ0g5cGjUjkOmEKbwI3kfsBIwcr6RU3h4LG
Q3/AyzMtZi/2v1PGH3LYwqKpETi6P7V7npIcnlW5D9UJDwfVI8y8jwd7XyIQdoUx
OXltbl/P0ShfmpsGus2Iyr1jHqyV1t+vq8Szlw7KxFpCbA6Ktb8DAo8i5j6ATKRE
guiEbQKBgQDPRmBq4i2/X7C4gNSPI2DeSJMieQZpvbeUV2L0oKZxWWqC08plvyJQ
aUrdKPF9MEMK0B4PBq0A6IMAs+BRBjAiP6dNxmBkIK3ZxNuX9Hqswy7gQ+cIppcn
cA7sKLeSlI0bmJDQ6UQEJqDiL1ZoXyLaE/ckwgneR2U+VIfCpuKDKw==
-----END RSA PRIVATE KEY-----

相关内容