Azure从磁盘创建VM后添加用户名密码代理及SSH连接问题咨询
解决通过现有磁盘创建Azure Linux VM后的SSH连接及Agent状态问题
首先直接给你明确:AGENT STATUS显示NOT READY确实是个需要处理的问题——Azure VM代理负责VM和平台的交互,状态异常会影响包括凭据重置在内的很多管理操作,同时这也和你没法SSH连接的问题有一定关联。下面是一步步的解决方案:
一、先修复VM代理状态
Azure Linux VM的代理状态异常,先通过CLI调整配置并重启VM:
- 先停止VM:
az vm stop --resource-group RESOURCE-GRP-NAME --name VM-NAME - 确保VM代理被启用:
az vm update --resource-group RESOURCE-GRP-NAME --name VM-NAME --set osProfile.linuxConfiguration.provisionVMAgent=true - 重启VM:
az vm start --resource-group RESOURCE-GRP-NAME --name VM-NAME
等待3-5分钟后再去VM属性里查看Agent状态,大概率会变成READY。如果还是不行,后续可以通过串行控制台进一步排查,但先解决SSH凭据的问题。
二、重置SSH登录凭据
你用az vm create --attach-os-disk创建VM时,确实没法直接指定用户名密码或SSH密钥——这种场景下需要事后通过Azure CLI重置登录凭据:
方式1:重置密码(适合密码登录)
执行以下命令设置新的用户名和密码(密码要符合Azure复杂度要求:至少12字符,包含大小写、数字、特殊字符):
az vm user update --resource-group RESOURCE-GRP-NAME --name VM-NAME --username YOUR-USERNAME --password YOUR-SECURE-PASSWORD
方式2:添加SSH公钥(更安全,推荐)
如果你习惯用密钥登录,执行这条命令把本地公钥添加到VM的用户名下:
az vm user update --resource-group RESOURCE-GRP-NAME --name VM-NAME --username YOUR-USERNAME --ssh-key-value /path/to/your/public/key.pub
替换/path/to/your/public/key.pub为你本地SSH公钥的实际路径,比如~/.ssh/id_rsa.pub。
三、如果还是连不上,试试串行控制台兜底
要是以上步骤都没解决,用Azure门户的串行控制台直接登录VM排查:
- 打开VM的Azure门户页面,左侧菜单找到「串行控制台」并点击
- 在弹出的终端里选择
ttyS0(或对应的终端会话),输入你刚重置的用户名和密码登录 - 登录后检查SSH服务状态:
如果服务没运行,启动它:sudo systemctl status sshd
同时确认防火墙允许22端口:sudo systemctl start sshdsudo ufw allow 22
四、验证SSH连接
完成上述操作后,尝试用SSH连接VM:
- 密码登录:
ssh YOUR-USERNAME@VM-PUBLIC-IP-ADDRESS - 密钥登录:
ssh -i /path/to/your/private/key YOUR-USERNAME@VM-PUBLIC-IP-ADDRESS
总结
Agent Status NOT READY是需要修复的异常状态,会影响Azure对VM的管理;而你没法SSH连接的核心原因是创建VM时未指定登录凭据,通过重置凭据+修复代理状态,就能正常连接到VM了。
内容的提问来源于stack exchange,提问作者Piyush Doke
相关产品推荐
相关产品推荐

