terraform创建EC2实例并使用公共密钥登录EC2实例不起作用。 aws_key_pair.auth:导入KeyPair错误:InvalidKey.Format:密钥不是有效的OpenSSH公钥格式
main.tf
resource "aws_key_pair" "auth" {
key_name = "${var.key_name}"
public_key = "${file(var.public_key_path)}"
}
variable.tf
variable "public_key_path" {
description = <<DESCRIPTION
Path to the SSH public key to be used for authentication.
Ensure this keypair is added to your local SSH agent so provisioners can
connect.
Example: ~/.ssh/terraform.pub
DESCRIPTION
default = "~/.ssh/terraform.pub"
}
~/.ssh/terraform.pub
resource "aws_key_pair" "deployer" {
key_name = "newssh"
public_key = "ssh-rsa
}
答案 0 :(得分:0)
您需要将SSH密钥添加到ssh-agent
确保ssh-agent已启用并在后台运行
$ eval "$(ssh-agent -s)"
将SSH密钥添加到ssh-agent。如果您使用现有的SSH密钥而不是生成新的SSH密钥,则需要用现有的私有密钥文件的名称替换命令中的id_rsa。
$ ssh-add ~/.ssh/id_rsa
所以在你的情况下
$ ssh-add ~/.ssh/terraform
然后运行terraform apply
答案 1 :(得分:0)
我遇到了同样的问题,而且我是使用不受支持的加密创建的。
创建一个 RSA 密钥。 Amazon EC2 不接受 DSA 密钥
你可以看看这个页面:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html