gpt4 book ai didi

azure - Terraform Azure_Linux_VM 使 SSH key 不起作用

转载 作者:行者123 更新时间:2023-12-03 03:45:53 25 4
gpt4 key购买 nike

如何通过 SSH 登录到新创建的 Azure_VM?

我正在通过 Terraform 设置一个简单的虚拟机,为其分配一个公共(public) IP 和一个我本地拥有的 SSH key 。使用 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 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1170757c787f64627463516969693f6969693f6969693f696969" rel="noreferrer noopener nofollow">[email protected]</a>产量:

<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="355451585c5b40465047750406021b0404021b04030d1b040400" rel="noreferrer noopener nofollow">[email protected]</a>: Permission denied (publickey).
<小时/>

尝试过:首先我认为这是错误的公钥。所以我检查了机器上的 public_key:

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

并将其与我本地计算机上的公钥进行比较。除了 Azure-VM 输出中打印的一个“\n”之外,它们是相同的。然而,向我的本地公钥添加新行并没有解决问题。

陷阱:有时,在摧毁机器并重新构建后我可以登录。之后及附加 terraform destroyterraform apply它不再起作用了。我不知道不明白我做错了什么

那么,如何通过 SSH 访问新创建的虚拟机?

最佳答案

事实证明,我确实用 cloud_init 配置覆盖了默认值(adminuser)。将 default 用户添加到 cloud_config 后,我可以通过 SSH 连接到 [email protected]

 data "template_cloudinit_config" "config" {                                     
gzip = true
base64_encode = true

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

关于azure - Terraform Azure_Linux_VM 使 SSH key 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69235153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com