azure - Azure 无法访问 VM
问题描述
我已经通过 terraform 创建了一个 VM,但我无法从https://shell.azure.com/访问它
当我输入:
ssh azureuser@40.IP.IP.IP
我得到:
Permission denied (publickey).
从 terraform 脚本中,我知道这个 VM 是使用以下命令创建的:
os_profile {
computer_name = "myvm"
admin_username = "azureuser"
}
os_profile_linux_config {
disable_password_authentication = true
ssh_keys {
path = "/home/azureuser/.ssh/authorized_keys"
key_data = "ssh-rsa AAAAB3Nz(...)"
}
}
output "public_ip_address" {
value = azurerm_public_ip.myterraformpublicip.ip_address
}
如何访问我的虚拟机?我知道它的 IP,管理员用户,但无法访问它。
在 Azure 中,/home/user/.ssh
我得到了一个公钥和一个私钥。
解决方案
对于您的问题,我认为可能有两个原因,也许您所做的解决了问题,但应该是最后一种方法。
以下是可能的原因和解决方案:
- SSH 密钥与您用于在要从其 ssh 到 VM 的主机中创建 VM 的密钥不同(因为您是云外壳)。
解决方案:您需要将 SSH 密钥从 terraform 文件复制到~/.ssh/id_rsa.pub
主机中的文件中(对您来说是云 shell)。
- SSH 密钥的格式不正确,这意味着它是错误的密钥。
解决方案:您需要创建一个新的 SSH 密钥,然后像您一样使用新密钥重置 VM SSH 公钥。
推荐阅读
- go - 在 Go 中如何测试调用另一个 API 端点的服务?
- kotlin - 如何使用对象而不是通过 id 或其他变量进行 HTTP GET 请求?
- python - 如何让我的代码运行在每一行,而不仅仅是第一行?
- react-native - 当我尝试执行以下代码时,我的 react-native 应用程序出现错误
- php - WordPress 在 public_html 中使用 PHP7.3,但 MySQL 扩展错误仅显示在仪表板中
- ios - 使用 RxDataSources 和 RxSwift 在 CollectionView 中泄漏
- php - TCP 提供程序连接被拒绝 - Laravel 6 和 SQL Server (Microsoft) 和 Laragon
- apache2 - Icecast2 与 Let's encrypt
- javascript - 在类构造函数中计算并定义一个常量
- firebase - Firebase:颤振:优化稳定性:许多事务与批量写入与设置调用