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

Azure虚拟机连接求助:本地SSH连接及串行控制台密码设置问题

问题解决:Azure VM SSH连接与Serial Console密码重置失败

一、本地通过SSH连接Azure VM的解决步骤

1. 修复密钥文件权限

SSH对密钥文件权限要求严格,执行以下命令调整:

chmod 600 /path/to/your/key.pem

确保密钥文件仅当前用户可读可写,避免权限过宽导致连接被拒绝。

2. 验证VM网络配置

  • 网络安全组(NSG):确认NSG已添加22端口的入站规则,源IP可设置为你的本地公网IP(生产环境建议限制范围,测试可暂时允许所有)。
  • 公共IP:确认VM关联的公共IP为静态或未被释放,可通过ping命令测试连通性(需NSG允许ICMP入站)。
  • VM内部SSH服务:若能通过Serial Console登录目标VM,执行以下命令检查并启动SSH服务:
    systemctl status sshd
    systemctl start sshd
    systemctl enable sshd
    
  • VM内部防火墙:开放22端口,以ufw为例:
    ufw allow ssh
    ufw reload
    
    若使用firewalld:
    firewall-cmd --permanent --add-service=ssh
    firewall-cmd --reload
    

3. 确认SSH命令格式正确

使用以下标准格式连接,替换为你的密钥路径、管理员用户名和VM公网IP:

ssh -i /path/to/key.pem your-admin-username@vm-public-ip

注意:管理员用户名是VM创建时指定的(如azureuser、ubuntu等),不可随意填写。


二、解决Serial Console密码需求与重置失败问题

问题背景:重置密码时出现VMExtensionProvisioningError(生成公钥失败),可通过以下两种方法解决:

方法1:磁盘交换重置密码(最可靠)

  1. 准备操作:停止目标VM,在Azure门户中分离其OS磁盘。
  2. 创建修复VM:新建一台临时Linux VM,将分离的OS磁盘附加为数据磁盘。
  3. 挂载并修改密码:
    • 登录临时VM,执行lsblk找到附加的OS磁盘分区(如/dev/sdc1)。
    • 创建挂载目录并挂载磁盘:
      mkdir /mnt/recovered-os
      mount /dev/sdc1 /mnt/recovered-os
      
    • 切换到目标系统环境并重置密码:
      chroot /mnt/recovered-os
      passwd your-admin-username  # 替换为你的管理员用户名
      exit
      
    • 卸载磁盘:umount /mnt/recovered-os,从临时VM分离该磁盘。
  4. 恢复原VM:将磁盘重新附加到原VM作为OS磁盘,启动VM后即可用新密码登录Serial Console。

方法2:修复VM Access扩展

  1. 检查磁盘空间:若VM磁盘已满,会导致扩展执行失败,可通过Azure Monitor查看磁盘使用率,清理空间后重试。
  2. 重装VM Access扩展:
    • 在Azure门户的VM「扩展」页面,卸载enablevmaccess扩展。
    • 重新安装该扩展,选择「重置密码」,输入已存在的管理员用户名和新密码。
  3. 验证SSH配置:若能登录VM,检查/etc/ssh/sshd_config,确保PasswordAuthentication yes,重启SSHD服务:systemctl restart sshd。

Serial Console连接步骤

密码重置成功后,在Azure门户VM详情页的「支持 + 故障排除」中点击「串行控制台」,启动后输入管理员用户名和新设置的密码即可登录。


内容的提问来源于stack exchange,提问作者Robert Green MBA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:44:52