【问题标题】:Transferring a zip to ec2 via local ssh key通过本地 ssh 密钥将 zip 传输到 ec2
【发布时间】:2020-12-19 15:08:43
【问题描述】:

使用以下代码压缩目录(有效)并使用 ssh 将其传输到 ec2 主机。

data "archive_file" "scripts" {
  type        = "zip"
  source_dir = "${path.module}/files/app"
  output_path = "${path.module}/files/app.zip"
}

resource "null_resource" "upload" {
  provisioner "file" {
    source      = data.archive_file.scripts.output_path
    destination = "/home/${var.ec2_user}/${data.archive_file.scripts.output_path}"

    connection {
      type        = "ssh"
      user        = var.ec2_user
      private_key = file("C:/Users/myuser/.ssh/id_rsa.ppk")
      host        = var.hostname
    }
  }
}

但是我收到以下错误:

Error: Failed to read ssh private key: no key found

如何使用本地 ssh 密钥将 zip 传输到远程主机?

文件很小,我应该使用provisioner吗?

谢谢

【问题讨论】:

  • 根据这些文件是什么,这可能是 Packer 或用户数据的更好用例。两者都会容易得多。

标签: windows ssh terraform


【解决方案1】:

错误:无法读取 ssh 私钥:未找到密钥

该错误意味着在指定的文件中找不到私钥。

在示例的以下行中,您指定的是 Putty 格式的私钥。

private_key = file("C:/Users/myuser/.ssh/id_rsa.ppk")

Terraform 要求私钥是 RSA 或 ECDSA PEM 文件。您的 SSH 服务器可能只支持 RSA。较新的 SSH 服务器通常同时支持 RSA 和 ECDSA。

如果您使用 OpenSSL 创建了私钥,则私钥文件名默认为 id_rsa。如果该文件存在,请将 Terraform 更改为:

private_key = file("C:/Users/myuser/.ssh/id_rsa")

【讨论】:

    猜你喜欢
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 2020-12-21
    • 2020-01-23
    • 2017-02-01
    • 1970-01-01
    相关资源
    最近更新 更多