【问题标题】:Can i do ssh into my ec2 instance created by terraform?我可以在 terraform 创建的 ec2 实例中执行 ssh 吗?
【发布时间】:2020-04-29 16:35:51
【问题描述】:

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

【问题讨论】:

  • 您应该生成一个 .pem 密钥并将其添加为 aws_key_pair 资源。在您的aws_instance 中使用key_name。可以使用user data 进行设置,但不是首选。
  • 你能分享使用的 Terraform 代码吗?

标签: amazon-ec2 ssh terraform ssh-keys


【解决方案1】:

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

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

您可以进行一些额外的设置:

  • 配置公网ipoutput:
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............"
}
  • 像这样在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"
}
  • 现在需要申请运行terraform applyterraform output返回公网IP

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

 ssh <PUBLIC IP>

或与公钥路径

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

来源:

【讨论】:

猜你喜欢
  • 2018-05-23
  • 2011-11-27
  • 2021-12-09
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
相关资源
最近更新 更多