我正在遵循this创建AWS环境的指南。现在,在创建环境之后,我想使用ec2。
我需要创建私有的公钥对,我不知道如何。
在指南的开头,它告诉:
Generate public key from private key
ssh-keygen -y -f ~/.ssh/pemfile/mumbai.pem
但是如何在主机上创建mumbai.pem文件? 有下载此pem的命令下载,还是我需要从aws下载它? 我对aws真的很陌生,希望这不太明显。
答案 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)