Terraform Azure_Linux_VM使SSH密钥不工作



如何通过ssh进入我新创建的Azure_VM ?

我正在通过Terraform设置一个简单的VM,为它分配一个公共IP和一个我在本地拥有的SSH密钥。使用terraform页面本身的教程:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/linux_virtual_machine

resource "azurerm_linux_virtual_machine" "example" {
...
admin_username = "adminuser"
admin_ssh_key {
username   = "adminuser"
public_key = file("~/.ssh/id_rsa.pub")
}
[...]
}

但是,在Terraform创建了机器之后,我无法登录到机器。

$ ssh adminuser@xxx.xxx.xxx.xxx收益率:

adminuser@137.117.168.115: Permission denied (publickey).

尝试:一开始我以为是错的公钥。所以我检查了机器上的public_key:

az vm list --query "[].{SSH: 
osProfile.linuxConfiguration.ssh.publicKeys[].keyData}" -o json

并将其与本地计算机上的公钥进行比较。它们都是一样的,除了一个"n"在Azure-VM的输出中打印。然而,在本地公钥中添加新行并不能解决问题。

抓住:有时,在摧毁机器并重建之后,我可以登录。在terraform destroyterraform apply之后,它不再工作了。我也我不知道我做错了什么

那么,我如何SSH到我新创建的VM?

我确实用cloud_init配置覆盖了默认值(adminuser)。添加默认后我可以通过SSH连接到adminuser@xxx.xxx.xxx.xxx

data "template_cloudinit_config" "config" {                                     
gzip = true                                                                   
base64_encode = true                                                          
           
part {                                                                        
content_type = "text/cloud-config"                                          
content      = "users: [default, foobar, barfoo]"
}                                                                             
}                                                                               

相关内容

  • 没有找到相关文章