def create_ssh_key(self, email_address, file_path):
try:
client = boto3.client('ec2',
aws_access_key_id=self.access_key_id,
aws_secret_access_key=self.secret_access_key,
region_name=self.region_name)
except Exception as e:
raise AWSException("There was an error connecting to EC2: %s" % e)
self.key_name = "%s_%s_%s" % (str(email_address.split("@")[0]),
str(socket.gethostname()),
str(int(time.time())))
self.identity_file = file_path + "/" + self.key_name + ".pem"
# Create an EC2 key pair
try:
key = client.create_key_pair(KeyName=self.key_name)
with open(self.identity_file, 'a') as out:
out.write(key['KeyMaterial'] + '\n')
except botocore.exceptions.ClientError as e:
if e.response["Error"]["Code"] == "AuthFailure":
raise AWSException("Invalid AWS access key id or aws secret access key")
else:
raise AWSException("There was an error creating a new SSH key pair: %s" %
e.response["Error"]["Message"])
except Exception as e:
raise AWSException("Unknown Error: %s" % e)
# Verify the key pair was saved locally
if not os.path.isfile(self.identity_file):
raise AWSException("SSH key %s not saved" % self.identity_file)
评论列表
文章目录