繁体   English   中英

AWS,terraform)如何从另一个创建新实例的实例连接到新实例?

[英]AWS, terraform) How to connect to new instance from another instance which created new instance?

我无法从instance1连接到instance2 ,后者通过terraform创建instance2,因为instance1没有key_name.pem,除了key_name.pub。

如何将key_name.pem下载到instance1?

这是我做的:

  1. 我创建了AWS实例1

  2. 生成ssh密钥

ssh-keygen -t rsa -b 4096 -C "roy" -f "$HOME/.ssh/test_key" -N ""
  1. terraform适用(关键资源)
# main.tf
provider "aws"{
    region = "ap-northeast-2"
}

resource "aws_key_pair" "test_key" {
key_name = "test_key"
public_key = "${file("~/.ssh/test_key.pub")}"
}
  1. terraform apply(创建实例)
provider "aws"{
    region = "ap-northeast-2"
}
resource "aws_instance" "ec2" {
ami = "ami-06e7b9c5e0c4dd014"
instance_type = "t2.nano"
key_name = "test_key"
tags {
Name = "ec2_instance"
}

您可以在创建instance1时使用user_data 这可以是常规bash脚本,您可以在其中为用户ubuntu创建id_rsakey_name.pem )文件(如果您使用的是Ubuntu AMI)。

#!/bin/bash

#create id_rsa

echo "[KEY_DATA]" > /home/ubuntu/.ssh/id_rsa
chmod 0600 /home/ubuntu/.ssh/id_rsa

但为什么你甚至需要在实例上使用私钥? Terraform不需要私钥......

万一你正在使用INSTANCE1为SSH堡垒:你应该使用SSH转发,而不是复制你的私钥到一个实例:运行ssh -A instance1_ip然后ssh instance2_ip从实例之一。 这样,您不需要在instance1上使用私钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM