我可以通过 ssh 进入由 terraform 创建的 ec2 实例吗?
Can i do ssh into my ec2 instance created by terraform?
我已经使用 terraform 创建了一个 ec2 实例(没有 .pem 密钥)。我可以在我的本地系统和 ec2 实例之间建立 ssh 连接吗?
假设您使用具有以下结构的 Terraform v0.12.+
配置了一个实例:
resource "aws_instance" "instance" {
ami = "${var.ami}"
instance_type = "t2.micro"
count = 1
associate_public_ip_address = true
}
您可以进行一些额外的设置:
- 配置public ip
output
:
output "instance_ip" {
description = "The public ip for ssh access"
value = aws_instance.instance.public_ip
}
- 使用现有的 ssh public 密钥创建
aws_key_pair
或创建 new one
例如:
resource "aws_key_pair" "ssh-key" {
key_name = "ssh-key"
public_key = "ssh-rsa AAAAB3Nza............"
}
- 像这样在
instance
资源中添加 key_name
:
resource "aws_instance" "instance" {
ami = var.ami
instance_type = "t2.micro"
count = 1
associate_public_ip_address = true
key_name = "ssh-key"
}
现在您需要将 运行ning terraform apply
和 terraform output
应用到 return public IP
获取您的 public IP 和 运行:
ssh <PUBLIC IP>
或使用 public 键路径
ssh -i "~/.ssh/id_rsa.pub" <PUBLIC IP>
来源:
我已经使用 terraform 创建了一个 ec2 实例(没有 .pem 密钥)。我可以在我的本地系统和 ec2 实例之间建立 ssh 连接吗?
假设您使用具有以下结构的 Terraform v0.12.+
配置了一个实例:
resource "aws_instance" "instance" {
ami = "${var.ami}"
instance_type = "t2.micro"
count = 1
associate_public_ip_address = true
}
您可以进行一些额外的设置:
- 配置public ip
output
:
output "instance_ip" {
description = "The public ip for ssh access"
value = aws_instance.instance.public_ip
}
- 使用现有的 ssh public 密钥创建
aws_key_pair
或创建 new one 例如:
resource "aws_key_pair" "ssh-key" {
key_name = "ssh-key"
public_key = "ssh-rsa AAAAB3Nza............"
}
- 像这样在
instance
资源中添加key_name
:
resource "aws_instance" "instance" {
ami = var.ami
instance_type = "t2.micro"
count = 1
associate_public_ip_address = true
key_name = "ssh-key"
}
现在您需要将 运行ning
terraform apply
和terraform output
应用到 return public IP获取您的 public IP 和 运行:
ssh <PUBLIC IP>
或使用 public 键路径
ssh -i "~/.ssh/id_rsa.pub" <PUBLIC IP>
来源: