从Azure托管数据磁盘创建VM后无法SSH连接及账号设置问题
解决Azure附加现有托管磁盘创建VM后的SSH连接与管理员凭据问题
我来帮你梳理下这个问题的根源和解决办法,毕竟我之前踩过类似的坑😉
为什么--admin-username这类参数不生效?
当你用--attach-os-disk参数创建VM时,这个托管磁盘已经包含了完整的操作系统配置——包括原有的用户账号、密码/SSH密钥、系统设置等。Azure不会覆盖已有OS磁盘里的用户数据,所以你指定的--admin-username、--admin-password这类参数会直接被忽略,这就是你用这些参数没效果的核心原因。
解决SSH连接问题+重置/获取管理员凭据的方法
分两种场景来处理:
场景1:记得原有OS磁盘里的管理员账号信息
这种情况很简单,直接用原账号连接就行,但别忘检查网络配置:
- 检查网络安全组(NSG)是否开放22端口
很多时候SSH连不上都是NSG没开端口导致的,用这条命令检查:
如果输出为空,就添加一条允许SSH的规则:az network nsg rule list --resource-group myResourceGroup --nsg-name myVMNSG --query "[?destinationPortRange=='22']"az network nsg rule create --resource-group myResourceGroup --nsg-name myVMNSG --name allowSSH --protocol tcp --priority 1000 --destination-port-range 22 --access allow - 用原账号SSH连接
直接执行:ssh original_admin_username@your_vm_public_ip
场景2:忘记原有凭据/磁盘无有效管理员账号
这时候可以用Azure的VMAccessForLinux扩展重置凭据,步骤如下:
- 先停止目标VM
az vm stop --resource-group myResourceGroup --name myVM - 使用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..."}'
- 仅创建新管理员账号:
- 启动VM并测试连接
启动完成后,用新设置的账号SSH连接即可。az vm start --resource-group myResourceGroup --name myVM
备选方案:挂载磁盘到其他VM修改配置
如果VMAccess扩展没法用(比如磁盘里的系统有问题),可以把托管磁盘挂载到一台正常运行的Linux VM上,直接修改磁盘里的用户配置:
- 停止目标VM,卸载托管磁盘
- 将磁盘挂载到另一台VM的数据磁盘
- 挂载磁盘分区后,修改
/mnt/your_mounted_disk/etc/passwd或添加SSH密钥到/mnt/your_mounted_disk/home/new_admin/.ssh/authorized_keys - 卸载磁盘,重新挂载回原VM启动
几点额外提醒
- 测试连通性:可以用
az vm ping --resource-group myResourceGroup --name myVM检查VM公网IP是否可达 - 如果原磁盘禁用了密码登录,务必用SSH密钥的方式重置凭据
- 后续基于现有磁盘创建VM前,建议先确认磁盘内的用户配置,避免再次遇到类似问题
内容的提问来源于stack exchange,提问作者felicity
相关产品推荐
相关产品推荐

