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

Azure Linux VM切换至SSH密钥认证后仍可密码登录求助

排查Azure Linux VM密码认证未禁用的遗漏操作
  • 检查是否有其他配置文件覆盖PasswordAuthentication设置
    多数Linux发行版会通过Include指令加载额外配置文件(比如/etc/ssh/sshd_config.d/*.conf),这些文件可能重新开启了密码认证。执行以下命令遍历所有相关配置:

    grep -r "PasswordAuthentication" /etc/ssh/
    

    若发现其他文件中存在PasswordAuthentication yes,需将其修改为no。

  • 确保sshd服务已重启生效
    修改sshd_config后必须重启服务才能让新配置生效,不同发行版的重启命令如下:

    # Systemd系统(Ubuntu 16.04+/CentOS 7+)
    systemctl restart sshd
    # SysVinit系统(旧版CentOS/Ubuntu)
    service ssh restart
    

    重启后检查服务状态确认无报错:

    systemctl status sshd
    
  • 清理残留的sshd进程
    旧的sshd进程可能未被正确终止,仍以旧配置运行。执行以下命令查看所有sshd进程:

    ps aux | grep sshd
    

    若存在多个主进程(非用户登录生成的子进程),用kill <PID>杀掉旧进程,确保新配置的sshd在运行。

  • 检查PAM配置的影响
    若sshd_config中UsePAM yes,PAM配置可能绕过sshd的密码禁用规则。查看/etc/pam.d/sshd文件,若存在auth include password-auth这类行,可尝试临时将sshd_config中的UsePAM改为no(注意:此操作会影响依赖PAM的其他认证功能,需测试后确认),或注释掉PAM配置中的密码认证相关行。

  • 排查Azure扩展或自定义数据的自动配置
    部分Azure管理扩展(如监控、自动化扩展)或VM的自定义数据可能自动重置sshd配置。进入Azure门户,查看VM的「扩展」和「自定义数据」设置,确认没有自动修改sshd_config的配置项。

  • 验证sshd_config的拼写与格式
    确保PasswordAuthentication no拼写完全正确(注意大小写),且未被#注释。用以下命令检查配置文件语法:

    sshd -t
    

    若存在语法错误,根据提示修复后再重启服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:25:25