问题描述
我可以使用 myKey
创建密钥对 AWS
到 terraform
。
resource "tls_private_key" "pk" {
algorithm = "RSA"
rsa_bits = 4096
}
resource "aws_key_pair" "kp" {
key_name = "myKey" # Create a "myKey" to AWS!!
public_key = tls_private_key.pk.public_key_openssh
}
AWS:
但我无法下载 myKey.pem
文件。是否可以像下面这样使用 myKey.pem
下载 terraform
文件?
解决方法
不,无法使用 myKey.pem
下载 Terraform
文件。相反,我们可以创建 myKey.pem
文件,该文件与 private key
上的密钥对 myKey
具有相同的 AWS
。因此myKey
创建的myKey.pem
和Terraform
文件与我们在AWS
上手动创建和下载的文件相同。这是下面的代码。 (我用的是 Terraform v0.15.4)
resource "tls_private_key" "pk" {
algorithm = "RSA"
rsa_bits = 4096
}
resource "aws_key_pair" "kp" {
key_name = "myKey" # Create a "myKey" to AWS!!
public_key = tls_private_key.pk.public_key_openssh
provisioner "local-exec" { # Create a "myKey.pem" to your computer!!
command = "echo '${tls_private_key.pk.private_key_pem}' > ./myKey.pem"
}
}
在 ssh 到您的 ec2 实例之前,不要忘记使 myKey.pem
文件只能由您运行以下代码读取。
chmod 400 myKey.pem
否则会出现下面的错误。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for 'myKey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "myKey.pem": bad permissions
ubuntu@35.72.30.251: Permission denied (publickey).