You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Azure托管数据磁盘创建VM后无法SSH连接及账号设置问题

解决Azure附加现有托管磁盘创建VM后的SSH连接与管理员凭据问题

我来帮你梳理下这个问题的根源和解决办法,毕竟我之前踩过类似的坑😉

为什么--admin-username这类参数不生效?

当你用--attach-os-disk参数创建VM时,这个托管磁盘已经包含了完整的操作系统配置——包括原有的用户账号、密码/SSH密钥、系统设置等。Azure不会覆盖已有OS磁盘里的用户数据,所以你指定的--admin-username、--admin-password这类参数会直接被忽略,这就是你用这些参数没效果的核心原因。

解决SSH连接问题+重置/获取管理员凭据的方法

分两种场景来处理:

场景1:记得原有OS磁盘里的管理员账号信息

这种情况很简单,直接用原账号连接就行,但别忘检查网络配置:

  1. 检查网络安全组(NSG)是否开放22端口
    很多时候SSH连不上都是NSG没开端口导致的,用这条命令检查:
    az network nsg rule list --resource-group myResourceGroup --nsg-name myVMNSG --query "[?destinationPortRange=='22']"
    
    如果输出为空,就添加一条允许SSH的规则:
    az network nsg rule create --resource-group myResourceGroup --nsg-name myVMNSG --name allowSSH --protocol tcp --priority 1000 --destination-port-range 22 --access allow
    
  2. 用原账号SSH连接
    直接执行:
    ssh original_admin_username@your_vm_public_ip
    

场景2:忘记原有凭据/磁盘无有效管理员账号

这时候可以用Azure的VMAccessForLinux扩展重置凭据,步骤如下:

  1. 先停止目标VM
    az vm stop --resource-group myResourceGroup --name myVM
    
  2. 使用VMAccess扩展重置凭据
    • 仅创建新管理员账号:
      az vm extension set --resource-group myResourceGroup --vm-name myVM --name VMAccessForLinux --publisher Microsoft.OSTCExtensions --version 1.4 --settings '{"username":"new_admin"}'
      
    • 创建账号并设置密码:
      az vm extension set --resource-group myResourceGroup --vm-name myVM --name VMAccessForLinux --publisher Microsoft.OSTCExtensions --version 1.4 --settings '{"username":"new_admin", "password":"YourStrongPass@123"}'
      
    • 创建账号并绑定SSH密钥:
      az vm extension set --resource-group myResourceGroup --vm-name myVM --name VMAccessForLinux --publisher Microsoft.OSTCExtensions --version 1.4 --settings '{"username":"new_admin", "ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..."}'
      
  3. 启动VM并测试连接
    az vm start --resource-group myResourceGroup --name myVM
    
    启动完成后,用新设置的账号SSH连接即可。

备选方案:挂载磁盘到其他VM修改配置

如果VMAccess扩展没法用(比如磁盘里的系统有问题),可以把托管磁盘挂载到一台正常运行的Linux VM上,直接修改磁盘里的用户配置:

  1. 停止目标VM,卸载托管磁盘
  2. 将磁盘挂载到另一台VM的数据磁盘
  3. 挂载磁盘分区后,修改/mnt/your_mounted_disk/etc/passwd或添加SSH密钥到/mnt/your_mounted_disk/home/new_admin/.ssh/authorized_keys
  4. 卸载磁盘,重新挂载回原VM启动

几点额外提醒

  • 测试连通性:可以用az vm ping --resource-group myResourceGroup --name myVM检查VM公网IP是否可达
  • 如果原磁盘禁用了密码登录,务必用SSH密钥的方式重置凭据
  • 后续基于现有磁盘创建VM前,建议先确认磁盘内的用户配置,避免再次遇到类似问题

内容的提问来源于stack exchange,提问作者felicity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:25:36