【发布时间】:2021-02-22 14:56:30
【问题描述】:
我正在尝试使用 Terraform 配置程序 remote-exec 在 ec2 实例上安装 Nginx,但我一直遇到此错误。
ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
这就是我的代码的样子
resource "aws_instance" "nginx" {
ami = data.aws_ami.aws-linux.id
instance_type = "t2.micro"
key_name = var.key_name
vpc_security_group_ids = [aws_security_group.allow_ssh.id]
connection {
type = "ssh"
host = self.public_ip
user = "ec2-user"
private_key = file(var.private_key_path)
}
provisioner "remote-exec" {
inline = [
"sudo yum install nginx -y",
"sudo service nginx start"
]
}
}
安全组规则设置为允许从任何地方进行 ssh。 而且我可以从我的本地机器 ssh 进入盒子。
不确定我是否在这里遗漏了非常明显的东西。我尝试过更新版本的 Terraform,但还是同样的问题。
【问题讨论】:
-
您为
var.key_name和var.private_key_path传递了什么值? -
我正在传递同一个 .pem 密钥对文件。
标签: terraform terraform-provider-aws terraform0.12+