如何创建 aws ec2 private-public 密钥对

How to create aws ec2 private-public key pair

我正在遵循 this 创建 aws 环境的指南。现在,在我创建环境后,我想通过 ssh 连接到 ec2。

我需要创建私有-public 密钥对,我不知道如何创建。

在指南的开头,它告诉:

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

但是如何在主机上创建 mumbai.pem 文件? 是否有下载创建此 pem 的命令,或者我需要从 aws 下载它? 我真的是 aws 的新手,我希望这不是太明显。

首先,如果您是 AWS 的新手,它可能太多了 您正在使用配备 Terraform 的服务器的教程,Terraform 是 AWS

的第 3 方工具

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

另一方面,这篇文章是一篇高级文章,它试图自动化所有基础工作,包括实例创建、网络等。它很有用,但可能太复杂而无法遵循

所以回到你的问题,TF会将基于mumbai.pem生成的public密钥注入到这段代码片段中创建的新服务器中:

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

作者对TF太熟悉了,跳过了基础部分,还不算太明显

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

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

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

生成私钥运行:

ssh-keygen -m PEM -f key.pem

public键

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 并在密钥对中单击导入。然后粘贴public密钥文件中的内容(key.pem.pub)