我可以通过 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 applyterraform output 应用到 return public IP

  • 获取您的 public IP 和 运行:

 ssh <PUBLIC IP>

或使用 public 键路径

ssh -i "~/.ssh/id_rsa.pub" <PUBLIC IP>

来源: