如何创建AWS EC2私钥-公钥对

时间:2019-03-27 23:30:58

标签: amazon-web-services ssh key-pair

我正在遵循this创建AWS环境的指南。现在,在创建环境之后,我想使用ec2。

我需要创建私有的公钥对,我不知道如何。

在指南的开头,它告诉:

Generate public key from private key
ssh-keygen -y -f ~/.ssh/pemfile/mumbai.pem

但是如何在主机上创建mumbai.pem文件? 有下载此pem的命令下载,还是我需要从aws下载它? 我对aws真的很陌生,希望这不太明显。

3 个答案:

答案 0 :(得分:1)

首先,如果您不熟悉AWS,可能会太多 您正在使用配备Terraform的配备服务器的教程,这是AWS的第三方工具

您可以考虑使用更直观的教程从AWS控制台创建您的第一个实例,AWS将帮助生成密钥对,并且您将拥有完全的控制权

另一方面,本文是高级文章,它试图使包括实例创建,网络等在内的所有基础架构自动化。它很有用,但可能太复杂了,无法遵循

所以回到您的问题,TF会将基于mumbai.pem生成的公钥注入到在此代码段中创建的新服务器中:

# Define SSH key pair for our instances
resource "aws_key_pair" "default" {
  key_name = "mumbai"
  public_key = "${file("${var.key_path}")}"
}

由于作者对TF非常熟悉,所以他并没有太明显,而他跳过了基本部分

答案 1 :(得分:1)

只需运行ssh-keygen,它就会提示您输入有关在何处创建密钥的详细信息。只需注意:如果在本地计算机上运行此命令,它将同时生成公用密钥和专用密钥。在这种情况下,您将需要Import Your Own Public Key to Amazon EC2。此方法对terraform更好,因为您可以将公共密钥的文本值输出轻松放入aws_key_pair资源中。

如果您通过ec2控制台创建密钥,AWS将自动将公钥保留在系统中,并且您的浏览器将下载私钥。参见Creating a Key Pair Using Amazon EC2。 (第二种方法将使您不必将其上载到ec2密钥对)。此方法也可用于aws_key_pair资源,但是您必须将现有资源导入terraform。使用第一种方法更简单。

如果您要通过terraform完成所有操作,请查看aws_key_pair

答案 2 :(得分:0)

要生成私钥,请运行:

ssh-keygen -m PEM -f key.pem

公钥

ssh-keygen -y -f key.pem > key.pem.pub

如果要通过aws cli手动将其导入名为AwsKeyName的密钥对,请输入:

aws ec2 import-key-pair --key-name AwsKeyName \ 
     --public-key-material $(openssl enc -base64 -A -in key.pem.pub)

要在控制台上创建对,请转到EC2,然后在“密钥对”中单击“导入”。然后将内容粘贴到公钥文件(key.pem.pub)