Я пытаюсь удаленно выполнить некоторые команды на недавно подготовленной виртуальной машине Google Cloud Platform Compute Engine, используя ssh-ключи с Terraform. Вот мой код:
resource "tls_private_key" "ssh-key" {
algorithm = "RSA"
rsa_bits = 4096
}
resource "google_compute_instance" "static-content" {
# ...
metadata {
sshKeys = "root:${tls_private_key.ssh-key.public_key_openssh}"
}
connection {
type = "ssh"
user = "root"
private_key = "${tls_private_key.ssh-key.private_key_pem}"
}
provisioner "remote-exec" {
inline = [
"curl -L https://github.com/aelsabbahy/goss/releases/download/v0.3.6/goss-linux-amd64 -o ~/goss",
"chmod +x ~/goss",
"~/goss -g ~/gossfile.yml validate",
]
}
}
Вывод, который я получаю в приложении Terraform, равен
google_compute_instance.static-content: Still creating... (2m10s elapsed)
google_compute_instance.static-content (remote-exec): Connecting to remote host via SSH...
google_compute_instance.static-content (remote-exec): Host: 35.198.166.131
google_compute_instance.static-content (remote-exec): User: root
google_compute_instance.static-content (remote-exec): Password: false
google_compute_instance.static-content (remote-exec): Private key: true
google_compute_instance.static-content (remote-exec): SSH Agent: false
google_compute_instance.static-content (remote-exec): Checking Host Key: false
Таким образом, похоже, что ключ ssh неправильно распространяется на виртуальную машину. Любые намеки, почему это не работает?