aws_key_pair.auth:错误导入KeyPair:InvalidKey.Format:密钥不是有效的OpenSSH公钥格式

时间:2019-02-08 18:16:50

标签: openssh terraform-provider-aws

terraform创建EC2实例并使用公共密钥登录EC2实例不起作用。 aws_key_pair.auth:导入KeyPair错误:InvalidKey.Format:密钥不是有效的OpenSSH公钥格式

这是main.tf的一部分,用于创建密钥对

    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 
}

2 个答案:

答案 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