我可以在terraform创建的ec2实例中使用ssh吗?

时间:2020-01-12 22:17:43

标签: amazon-ec2 ssh terraform ssh-keys

我已经使用Terraform(没有.pem键)创建了一个ec2实例。我可以在本地系统和ec2实例之间建立ssh连接吗?

1 个答案:

答案 0 :(得分:7)

假设您使用具有以下结构的Terraform v0.12.+设置了一个实例:

resource "aws_instance" "instance" {
  ami              = "${var.ami}"
  instance_type    = "t2.micro"
  count            = 1
  associate_public_ip_address = true
}

您可以进行一些其他设置:

  • 配置公共IP output
output "instance_ip" {
  description = "The public ip for ssh access"
  value       = aws_instance.instance.public_ip
}

  • 使用现有的ssh公钥创建aws_key_pair或创建new one 例如:
resource "aws_key_pair" "ssh-key" {
  key_name   = "ssh-key"
  public_key = "ssh-rsa AAAAB3Nza............"
}
  • 像这样在key_name资源中添加instance
resource "aws_instance" "instance" {
  ami              = var.ami
  instance_type    = "t2.micro"
  count            = 1
  associate_public_ip_address = true

  key_name         = "ssh-key"
}
  • 现在,您需要应用正在运行的terraform applyterraform output来返回公共IP

  • 获取您的公共IP并运行:

 ssh <PUBLIC IP>

或具有公钥路径的

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

来源: