使用 Boto3 在 AWS 上创建新的 EC2 密钥对
Create new EC2 keypair on AWS with Boto3
boto3 1.1.2 文档 say that the create_key_pair
command 应该 return 包含新创建的密钥对的私钥的字典。
我确实在用那个版本…
>>> import boto3
>>> boto3.__version__
'1.1.2'
…然而,当我 运行 create_key_pair
时,我 return 变成了 KeyPair
object which does not appear to contain any information about the private key. The keypair does get created, it's just that I have no way of retrieving the private key because it is only ever available at the time of the keypair's creation。较旧的 boto APIs 显然在 KeyPair
对象上有一个 .save
方法来将密钥保存到文件中,但它似乎也已从 API 中删除。
在 boto3 1.1.2 中,如何创建新的 EC2 密钥对和 检索其私钥?
私钥在keypair['KeyMaterial']
中可用:
>>> import boto3
>>> ec2 = boto3.client('ec2')
>>> keypair = ec2.create_key_pair(KeyName='foo')
>>> keypair['KeyMaterial']
'-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCA...\n-----END RSA PRIVATE KEY-----'
参考文献:
在新版本的 boto3(我使用的是 1.4.7)中更改此行:
keypair['KeyMaterial']
至
keypair.key_material
添加保存到本地密钥对文件的功能
$ 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
boto3 1.1.2 文档 say that the create_key_pair
command 应该 return 包含新创建的密钥对的私钥的字典。
我确实在用那个版本…
>>> import boto3
>>> boto3.__version__
'1.1.2'
…然而,当我 运行 create_key_pair
时,我 return 变成了 KeyPair
object which does not appear to contain any information about the private key. The keypair does get created, it's just that I have no way of retrieving the private key because it is only ever available at the time of the keypair's creation。较旧的 boto APIs 显然在 KeyPair
对象上有一个 .save
方法来将密钥保存到文件中,但它似乎也已从 API 中删除。
在 boto3 1.1.2 中,如何创建新的 EC2 密钥对和 检索其私钥?
私钥在keypair['KeyMaterial']
中可用:
>>> import boto3
>>> ec2 = boto3.client('ec2')
>>> keypair = ec2.create_key_pair(KeyName='foo')
>>> keypair['KeyMaterial']
'-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCA...\n-----END RSA PRIVATE KEY-----'
参考文献:
在新版本的 boto3(我使用的是 1.4.7)中更改此行:
keypair['KeyMaterial']
至
keypair.key_material
添加保存到本地密钥对文件的功能
$ 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