找回EC2的Key Pair文件

EC2在创建主机的时候,会提示生成并下载一个Key Pair文件,格式是pem。如下图。这个文件可以在SSH连接中,用来进行身份验证。这样做的好处是可以不用密码直接登陆。那坏处是……如果pem文件遗失了,就再也找不回来了……

AWS那边是不保存这份文件的,估计是出于安全性考虑。一旦主机被创建出来,用户只能自己看管这个pem文件。

如果pem文件丢失,一个可行的方法是,把硬盘(Volume)复制一份,然后创建一个新的主机,再把复制出来的硬盘attach上去。在新创建的过程中,可以选择新建一个Key Pair,而不是使用之前那个。然后你就有一个新的pem文件可以用了……

转载自:http://leonax.net/p/4668/recover-ec2-key-pair-file/

好的,下面是使用 Terraform 创建 EC2 实例的步骤: 1. 确认你的 AWS 凭证已经配置好,并且你已经安装了 Terraform。 2. 创建一个新的 Terraform 配置文件,命名为 `main.tf`。 3. 在 `main.tf` 文件中,添加以下代码来配置 provider 和 IAM 角色: ``` provider "aws" { region = "us-west-2" } data "aws_iam_policy_document" "ec2_role" { statement { effect = "Allow" actions = [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeRegions", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:CreateSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances" ] resources = ["*"] } } resource "aws_iam_role" "ec2_role" { name = "ec2_role" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Principal = { Service = "ec2.amazonaws.com" } } ] }) inline_policy { name = "ec2_policy" policy = data.aws_iam_policy_document.ec2_role.json } } ``` 这里我们配置了 AWS provider 的区域为 `us-west-2`,并创建了一个名为 `ec2_role` 的 IAM 角色,其中包含了创建 EC2 实例所需的权限。 4. 在 `main.tf` 文件中,添加以下代码来创建 EC2 实例: ``` resource "aws_instance" "web" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" key_name = "my_key_pair" vpc_security_group_ids = [aws_security_group.web.id] user_data = <<-EOF #!/bin/bash echo "Hello, World!" > index.html nohup busybox httpd -f -p 80 & EOF tags = { Name = "web" } } resource "aws_security_group" "web" { name_prefix = "web" ingress { from_port = 80 to_port = 80 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } } ``` 这里我们创建了一个名为 `web` 的 EC2 实例,使用了 AMI ID 为 `ami-0c55b159cbfafe1f0` 的 Amazon Linux 2 镜像,实例类型为 `t2.micro`,并指定了一个名为 `my_key_pair` 的 SSH 密钥对,以便我们可以通过 SSH 访问该实例。 此外,我们还创建了一个名为 `web` 的安全组,允许从任意 IP 地址访问该实例的 80 端口,以便我们可以通过 Web 浏览器访问该实例。 5. 在命令行中执行以下命令初始化 Terraform 环境: ``` terraform init ``` 6. 执行以下命令检查 Terraform 配置文件是否正确: ``` terraform validate ``` 7. 执行以下命令预览将要创建的资源: ``` terraform plan ``` 8. 执行以下命令创建资源: ``` terraform apply ``` 9. 等待 Terraform 完成创建 EC2 实例的工作。 10. 执行以下命令销毁创建的资源: ``` terraform destroy ``` 以上就是使用 Terraform 创建 EC2 实例的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值