Oracle Linux 8.x LDAP用户SSH登录失败问题排查求助
LDAP用户无法SSH登录Oracle Linux 8.x虚拟机排查
环境
运行Oracle Linux Server release 8.x的虚拟机
LDAP相关配置
/etc/nslcd.conf 有效配置
$ sudo grep -v -E '^\s*(#|$)' /etc/nslcd.conf uid nslcd gid ldap uri ldap://ldap.local.{company}.com/ base dc={company},dc=com
/etc/pam.d/system-auth 有效配置
$ sudo grep -v -E '^\s*(#|$)' /etc/pam.d/system-auth auth sufficient pam_ldap.so auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth sufficient pam_sss.so{cpmpany}_pass auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_usertype.so issystem account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password requisite pam_pwquality.so local_users_only password sufficient pam_unix.so sha512 shadow nullok use_authtok password sufficient pam_sss.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_sss.so
/etc/nsswitch.conf 有效配置
$ sudo grep -v -E '^\s*(#|$)' /etc/nsswitch.conf passwd: files ldap group: files ldap netgroup: sss files automount: sss files services: sss files shadow: files sss hosts: files dns myhostname aliases: files ethers: files gshadow: files networks: files dns protocols: files publickey: files rpc: files
问题描述
无法使用LDAP用户SSH登录虚拟机,执行SSH登录命令后提示 Permission denied, please try again.。已确认:
- 可正常获取LDAP用户信息
- 与LDAP服务器交互正常
- ping、telnet等连通性测试均无问题
排查方向
PAM配置语法与冲突问题
/etc/pam.d/system-auth中pam_sss.so{cpmpany}_pass存在明显语法错误,多了无效后缀,会导致该模块加载失败,直接触发后续pam_deny.so拒绝认证,需修正为auth sufficient pam_sss.so。- 配置中同时混用
pam_ldap.so和pam_sss.so,且认证顺序优先级混乱:pam_localuser.so优先匹配本地用户,pam_unix.so处理本地密码,LDAP认证模块优先级靠后,可能导致LDAP用户认证请求被提前拦截。
SSSD配置缺失
/etc/nsswitch.conf中shadow、netgroup等条目依赖sss,但未配置SSSD的LDAP连接信息。若计划用SSSD管理LDAP,需确保/etc/sssd/sssd.conf正确配置LDAP服务器地址、用户搜索路径等,且sssd服务正常运行。
登录权限限制
- 检查LDAP用户对象的
host属性是否包含当前虚拟机的主机名/IP,确认LDAP服务器是否限制用户登录目标主机; - 检查本地
/etc/security/access.conf,确认是否存在针对LDAP用户的登录限制规则。
- 检查LDAP用户对象的
SSH服务配置检查
- 查看
/etc/ssh/sshd_config,确认UsePAM yes已开启,且AllowUsers/DenyUsers/AllowGroups等配置未禁止LDAP用户或其所在组登录。
- 查看
日志定位具体错误
- 查看
/var/log/secure或执行journalctl -u sshd,获取SSH认证失败的详细日志; - 查看
journalctl -u nslcd、journalctl -u sssd,确认LDAP/SSSD模块在认证过程中的报错信息。
- 查看
内容的提问来源于stack exchange,提问作者nagarjuna v
相关产品推荐
相关产品推荐

