使用Boto3在AWS上创建新的EC2密钥对

时间:2015-08-26 18:16:59

标签: amazon-ec2 boto3

boto3 1.1.2 docs say that the create_key_pair command应该返回一个包含新创建的密钥对的私钥的字典。

我确实在使用那个版本......

>>> import boto3
>>> boto3.__version__
'1.1.2'

...当我运行create_key_pair时,我返回了一个KeyPair object,它似乎不包含任何有关私钥的信息。密钥对确实被创建了,只是因为我无法检索私钥,因为it is only ever available at the time of the keypair's creation。较旧的boto API显然在.save对象上有一个KeyPair方法,用于将密钥保存到文件中,但似乎也已从API中删除。

在boto3 1.1.2中,如何创建新的EC2密钥对检索其私钥?

3 个答案:

答案 0 :(得分:4)

私钥在mureinik@computer ~$ make --version GNU Make 4.0 Built for x86_64-redhat-linux-gnu Copyright (C) 1988-2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 中可用:

keypair['KeyMaterial']

参考文献:

答案 1 :(得分:1)

在新版本的boto3中(我使用1.4.7)更改此行:

keypair['KeyMaterial']

keypair.key_material

答案 2 :(得分:0)

添加保存到本地密钥对文件的功能

$ cat keypair.py

import boto3

keypair_name = "python_keypair"

ec2 = boto3.client('ec2')
keypair = ec2.create_key_pair(KeyName=keypair_name)

private_key_file=open(keypair_name,"w")
private_key_file.write(response['KeyMaterial'])
private_key_file.close

现在你应该在本地获取私钥

$ cat python_keypair.pem

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA14D9GAC7zVSRr3iHUyEaIF8ol5ccWBj9InVqYnF28l10EUCz
g5OLL5Ll6WiIYvlxhcRHM5d0os2Lg5SuKi0mTktYQ7QVD8RkdoEYIVrqgBir3VMf
8jG08JRhaJs4/OQk2+WAGecjcVx6joz9yXTRT3Maaec/4qNigfYMLpSsdAoZ0hrk
....

将其移至 ~/.ssh 并将权限更改为 600