我有一台 Rhel 5 VM,通常连接到 ldap 服务,今天我发现 ssh 和 su 坏了。尝试这两个命令时,shell 会挂起。我只能通过控制台以 root 身份登录。
密码接受后,ssh 被中断(可以从 /var/log/secure 中看到),更具体地说是在这个阶段:
debug1:下一个身份验证方法:密码
xxxxxxx@xxxxxx 的密码:
debug2:我们发送了一个密码包,等待回复
debug1:身份验证成功(密码)。debug1
:通道 0:新 [client-session]
debug2:通道 0:发送打开
debug1:进入交互式会话。
尽管 /var/log/secure 表示不同意见,但通过 su 切换到任何本地用户也是不可能的。
就 ssh 而言,UseDNS 选项(/etc/ssh/sshd_config)已被注释,所以我认为它的值是“否”。
并且多个命令(ps、id、su、httpd ..)在 /var/log/secure 或 /var/log/messages 中生成此错误
nss_ldap: failed to bind to LDAP server ldap://ldap-bla.bla.bla:###: Can't contact LDAP server
过了一段时间,我意识到 /etc/resolv.conf 配置错误。我修复了它,问题就解决了。
但是,如果有人能指导我理解这个问题,我将不胜感激。我可以部分地看到无法访问 ldap 服务器可能会影响涉及远程连接或用户的所有事情,但我想确切地知道为什么 su 到本地用户也不可能。以及如何在不修复 ldap 的情况下解决这个问题。从 nsswitch.conf 中删除 ldap 有帮助吗?
就像这样:
[root@xxxxxx ~]# grep -i ldap /etc/nsswitch.conf
passwd: files sss ldap
shadow: files sss ldap
group: files sss ldap
netgroup: files sss ldap
automount: files sss ldap
sudoers: files ldap
在此先向有时间回复的任何人表示感谢。