WWF世界自然基金会 2025-06-29 19:20 采纳率: 98.9%
浏览 1
已采纳

问题:用户更改UNIX密码后SSH连接异常断开

用户更改UNIX密码后SSH连接异常断开,常见原因之一是PAM(可插拔认证模块)配置错误或密码策略限制。当用户修改密码后,若系统PAM配置不当,可能导致sshd服务在验证时出现异常,进而引发连接中断。此外,也可能是由于SELinux或AppArmor等安全机制阻止了新的认证流程。还有一种情况是,密码修改后未正确同步NIS、LDAP等集中认证系统,造成认证失败。排查此类问题应检查/var/log/secure日志,确认认证失败的具体原因,并验证PAM配置文件(如/etc/pam.d/sshd)是否合规。
  • 写回答

1条回答 默认 最新

  • ScandalRafflesia 2025-10-21 22:52
    关注

    1. 现象描述

    用户在更改UNIX系统密码后,尝试通过SSH重新连接时遇到异常断开的问题。这种现象通常表现为连接建立后立即中断,或者认证阶段失败。

    2. 常见原因分析

    • PAM配置错误: 密码修改可能触发了PAM模块的某些限制或逻辑错误。
    • SELinux/AppArmor限制: 安全策略可能阻止了sshd对新密码的验证过程。
    • 集中认证同步问题: 若使用NIS、LDAP等集中认证系统,密码未正确同步会导致认证失败。
    • 密码策略限制: 某些密码复杂度策略可能导致密码设置不合规,进而影响后续登录。

    3. 排查流程图

    graph TD
        A[用户反馈SSH连接断开] --> B{检查/var/log/secure日志}
        B --> C[是否存在PAM相关错误]
        C -->|是| D[检查/etc/pam.d/sshd配置]
        C -->|否| E{是否启用SELinux或AppArmor}
        E -->|是| F[临时禁用安全模块测试]
        E -->|否| G{是否使用集中认证}
        G -->|是| H[验证NIS/LDAP同步状态]
        G -->|否| I[检查密码策略与合规性]
        D --> J[修正PAM配置]
        F --> K[调整SELinux/AppArmor策略]
        H --> L[修复集中认证服务]
        I --> M[修改符合策略的新密码]
        

    4. 日志分析示例

    查看系统安全日志 /var/log/secure 或 journalctl 输出:

    Dec  5 10:20:30 server sshd[1234]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.100 user=user1
    Dec  5 10:20:31 server sshd[1234]: Failed password for user1 from 192.168.1.100 port 2222 ssh2
    Dec  5 10:20:31 server sshd[1234]: fatal: Access denied for user user1 by PAM account configuration [preauth]
        

    5. 关键配置文件检查

    查看 PAM 配置文件内容(如:/etc/pam.d/sshd):

    #%PAM-1.0
    auth       required     pam_sepermit.so
    auth       substack     system-auth
    auth       include      postlogin
    account    required     pam_nologin.so
    account    include      system-auth
    password   include      system-auth
    session    optional     pam_keyinit.so force revoke
    session    required     pam_limits.so
    session    optional     pam_systemd.so
    session    include      system-auth
    session    include      postlogin
        

    确认其中引用的子模块(如system-auth)是否包含密码过期、账户锁定等限制。

    6. SELinux/AppArmor排查

    临时禁用SELinux进行测试:

    setenforce 0
        

    若此时SSH连接正常,则需检查SELinux策略模块并适当调整。

    7. 集中认证系统验证

    若使用LDAP/NIS,执行如下命令验证用户信息是否同步:

    getent passwd user1
    id user1
        

    若输出为空或信息不符,则需检查对应服务的连接状态及配置。

    8. 密码策略与合规性检查

    查看密码策略配置文件(如:/etc/security/pwquality.conf):

    配置项说明示例值
    minlen最小密码长度12
    dcredit至少包含多少个数字-1
    ucredit大写字母数量-1
    lcredit小写字母数量-1
    ocredit特殊字符数量-1

    确保新密码满足所有策略要求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 6月29日