我使用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的配置只允许使用一个密钥对。但是,您可以手动(或通过脚本(添加具有自己密钥的第二个用户帐户。请看一下如何将具有SSH访问权限的新用户帐户添加到我的Amazon EC2 Linux实例?
话虽如此,建议使用AWS Systems Manager会话管理器而不是直接SSH登录实例。通过这种方式,您可以通过IAM策略控制对实例的访问,而不需要将SSH端口公开到internet。