1

I need to generate vagrant images that are configured as master/slave types. The slaves need to have SSH access to the master node, and there will be tens of thousands of slave instances.

Vagrant supplies Puppet and Chef provisioners, so I used Puppet since it is already floating around in the infrastructure so it should be easier to maintain here.

I am performing the following to generate SSH keys on the node that spawns the instances that will become my images like so:

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

Unfortunately this seems to be generating SSH keys that still require a password. I am also generating these keys on an Ubuntu host and using puppet to pull them in to the vagrant instances, which does not seem to work.

What is a 1 liner or script I can use that will actually generate an ssh key with an empty passphrase?

Note:

This doesnt work,

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

BONUS:

ssh-keygen is creating keys with the base host's identity. Generally you would generate these from the host you are trying to ssh from and ssh-copy-id them over to the host you are trying to connect to. In this scenario, the host ID of the machine generating the keys is neither host. How do you generate generic keys that allow any host to access the server host?

Since this is vagrant (headless puppet) I am unable to copy keys between instances because somehow they both have the same IP address when I log into them. I have attempted to generate keys on the base host, then use the following to convert to PEM format, but it doesnt work either:

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

Thanks.

1 Answer 1

5

This works for me:

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

Change the filename to what you wish. Note the use of ' instead of "

Not sure what you mean by the second bit...Isn't the generated key already 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-----
3
  • Created the key using: ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa_medusa on the server host. Copied the id_rsa private key to ~/.ssh/id_rsa_medusa.pem on the client host. Powered off both VMs. Converted the VM disk images to QCOW2, uploaded to Glance, and spawned server and client instances. 'ssh -i' as root from client to server using the pem file asks for a password. " Warning: Permanently added '10.207.255.213' (ECDSA) to the list of known hosts. Enter passphrase for key '/root/.ssh/id_rsa_medusa.pem': [email protected]'s password: "
    – spyderdyne
    Nov 9, 2015 at 21:12
  • This issue prevents me from automating my workflow. I am unable to complete my project until this is resolved.
    – spyderdyne
    Nov 10, 2015 at 17:15
  • Try using -P '' instead of -N '' (the manpage is a little confusing, but it could be read that -P is for setting the initial password OR specifying the old one). Worth a shot anyway...
    – ssta
    Nov 10, 2015 at 17:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .