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

Azure Ubuntu虚拟机SSH登录提示Permission denied (publickey),用户名密码登录配置遇阻求助

Azure Ubuntu虚拟机SSH登录提示Permission denied (publickey),用户名密码登录配置遇阻求助

嘿,太懂这种明明按步骤操作却卡壳的烦躁了!结合你描述的情况——证书(SSH密钥)登录正常,但用户名密码登录一直报Permission denied (publickey),大概率是SSH服务端还没开启密码认证选项,加上Azure环境的一些默认配置,我帮你梳理几个必查的点:

一、先确认Ubuntu虚拟机上的SSH服务配置

先通过已能正常使用的证书登录进VM,然后做这些检查:

  1. 给myuser设置密码(这步超容易忘!)
    执行命令:

    sudo passwd myuser
    

    跟着提示输入并确认密码即可。

  2. 修改SSH服务配置文件,允许密码登录
    打开配置文件:

    sudo nano /etc/ssh/sshd_config
    

    找到以下几个关键配置项,调整成对应值:

    • PasswordAuthentication yes(去掉前面的注释符号,把值改成yes)
    • ChallengeResponseAuthentication no(保持默认或改成no,避免干扰密码认证)
    • PubkeyAuthentication yes(这个可以保留,这样密钥登录依然能用,密码登录也能开启)
      要是找不到PasswordAuthentication,直接在文件末尾添加这一行也可以。
  3. 重启SSH服务让配置生效

    sudo systemctl restart sshd
    

二、Azure层面的额外检查

虽然你密钥登录正常,但还是确认下这两个点:

  • 网络安全组(NSG):确保NSG的入站规则允许22端口(SSH)的流量(既然密钥能登,这个大概率没问题,但以防万一)。
  • Azure VM的登录限制:在Azure门户里找到你的VM,进入「配置」→「SSH密钥」,确认有没有强制要求仅用密钥登录的设置。如果有,改成允许密码登录;也可以用Azure CLI执行命令修改:
    az vm update --resource-group <你的资源组名> --name <VM名称> --set osProfile.linuxConfiguration.disablePasswordAuthentication=false
    

三、macOS本地的连接测试

现在在mylocal上尝试用密码登录:

ssh myuser@thatIP

如果还是报错,加-v参数看详细日志,能帮你精准定位问题:

ssh -v myuser@thatIP

日志里会显示服务端允许的认证方式,如果看到只有publickey,说明前面的sshd配置没生效,回去检查配置文件有没有写错,或者服务有没有重启成功。

四、顺便修复手动复制公钥后的密钥登录问题(如果需要的话)

你之前手动传公钥后密钥登录失败,大概率是权限问题——SSH对.ssh目录和文件的权限要求很严格:
登录myuser账户,执行以下命令修正权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
sudo chown -R myuser:myuser ~/.ssh

权限不对的话,SSH服务会拒绝读取公钥文件,自然会登录失败。

按照这些步骤来,应该能解决密码登录的问题,如果还有卡壳的地方,把ssh -v的日志片段贴出来,能更精准排查!

备注:内容来源于stack exchange,提问作者Max Wyss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 13:29:37