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密钥对和检索其私钥?
答案 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