amazon-ec2 - 我可以在 terraform 创建的 ec2 实例中执行 ssh 吗?

标签 amazon-ec2 ssh terraform ssh-keys

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

最佳答案

假设您使用 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
    }
    
    
  • 创建 aws_key_pair使用现有的 ssh 公钥或创建 new one
    例如:
  • resource "aws_key_pair" "ssh-key" {
      key_name   = "ssh-key"
      public_key = "ssh-rsa AAAAB3Nza............"
    }
    
  • 添加 key_nameinstance像这样的资源:
  • 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
  • 获取您的公共(public) IP 并运行:

  •  ssh <PUBLIC IP>
    

    或使用公钥路径

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

    资料来源:
  • https://www.terraform.io/docs/providers/aws/r/instance.html
  • https://www.terraform.io/docs/providers/aws/r/key_pair.html
  • https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
  • 关于amazon-ec2 - 我可以在 terraform 创建的 ec2 实例中执行 ssh 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59708577/

    相关文章:

    linux - 是否可以删除 Amazon-EC2 linux 中 ec2-user 目录中的所有文件和文件夹?

    git - 如何让 GIT/SSH 在特定位置查找 "known_hosts"?

    ssh - GCE VM无法SSH到刚在其他项目中创建的新GCE VM

    linux - 指向 Amazon Linux AMI 测试页面而不是 WP 站点的 AWS EC2 实例

    amazon-web-services - 我应该为我的 EC2 实例使用哪些 AWS 磁盘选项?

    amazon-web-services - ec2-describe-instance-status Client.InvalidInstanceID.NotFound 但我知道实例存在

    linux - 无法通过 ssh 在远程服务器上启动屏幕

    amazon-web-services - 如何使用 Terraform 格式化和挂载临时磁盘?

    amazon-web-services - ECS 和负载均衡器的 Terraform 第一次失败

    azure - 无法在 Terraform 中同时创建多个 Azure 防火墙规则集