EC2 和 key_pair - 如何使用不同的 ssh_key
EC2 and key_pair - How to use different ssh_key
我使用 Terraform 脚本在 AWS 上构建了一个小平台。目前,有一个 EC2,我可以在其中进行 ssh。
为此,我在 aws_instance
中填充了变量 key_name
。
如果我想让同事也通过 ssh 连接到实例,我该如何添加另一个 ssh_key?
key_name
接受字符串而不是列表。
resource "aws_instance" "airflow" {
ami = "ami-0d3f551818b21ed81"
instance_type = "t3a.xlarge"
key_name = "admin"
vpc_security_group_ids = [aws_security_group.ssh-group.id, aws_security_group.airflow_webserver.id]
tags = {
"Name" = "airflow"
}
subnet_id = aws_subnet.subnet1.id
}
resource "aws_key_pair" "admin" {
key_name = "admin"
public_key = file(var.public_key_path)
}
output "public_airflow_ip" {
value = aws_instance.airflow.public_ip
}
通过API的配置只允许一对密钥。但是,您可以手动(或通过脚本)使用自己的密钥添加第二个用户帐户。请看一下How do I add new user accounts with SSH access to my Amazon EC2 Linux instance?
话虽如此,建议使用 AWS Systems Manager Session Manager 而不是直接 SSH 登录实例。这样您就可以通过 IAM 策略控制对实例的访问,并且不需要将 SSH 端口公开到互联网。
我使用 Terraform 脚本在 AWS 上构建了一个小平台。目前,有一个 EC2,我可以在其中进行 ssh。
为此,我在 aws_instance
中填充了变量 key_name
。
如果我想让同事也通过 ssh 连接到实例,我该如何添加另一个 ssh_key?
key_name
接受字符串而不是列表。
resource "aws_instance" "airflow" {
ami = "ami-0d3f551818b21ed81"
instance_type = "t3a.xlarge"
key_name = "admin"
vpc_security_group_ids = [aws_security_group.ssh-group.id, aws_security_group.airflow_webserver.id]
tags = {
"Name" = "airflow"
}
subnet_id = aws_subnet.subnet1.id
}
resource "aws_key_pair" "admin" {
key_name = "admin"
public_key = file(var.public_key_path)
}
output "public_airflow_ip" {
value = aws_instance.airflow.public_ip
}
通过API的配置只允许一对密钥。但是,您可以手动(或通过脚本)使用自己的密钥添加第二个用户帐户。请看一下How do I add new user accounts with SSH access to my Amazon EC2 Linux instance?
话虽如此,建议使用 AWS Systems Manager Session Manager 而不是直接 SSH 登录实例。这样您就可以通过 IAM 策略控制对实例的访问,并且不需要将 SSH 端口公开到互联网。