我有一些CentOS 5.x和RHEL 5.x系统的SSH守护进程无响应。 这可以防止远程login。
连接端的典型错误是:
$ ssh db1 db1 : ssh_exchange_identification: Connection closed by remote host
强制重新启动后检查/var/log/messages显示以下导致重新启动的信息:
Dec 10 10:45:51 db1 sshd[14593]: fatal: Privilege separation user sshd does not exist Dec 10 10:46:02 db1 sshd[14595]: fatal: Privilege separation user sshd does not exist Dec 10 10:46:54 db1 sshd[14711]: fatal: Privilege separation user sshd does not exist Dec 10 10:47:38 db1 sshd[14730]: fatal: Privilege separation user sshd does not exist
这些系统使用LDAP身份validation,并将nsswitch.conf文件configuration为首先查看本地“文件”。
[root@db1 ~]# cat /etc/nsswitch.conf # # /etc/nsswitch.conf # passwd: files ldap shadow: files ldap group: files ldap hosts: files dns
特权分离的 SSH用户存在于本地密码文件中。
[root@db1 ~]# grep ssh /etc/passwd sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
任何想法是什么根源? 我没有看到任何涵盖这个的红帽勘误表。
Debian bug #552431听起来很相似。
受影响的系统是否比不受影响的系统执行更多的LDAP查询? 例如,邮件服务器,LDAPauthentication的数据库服务器?
EL5中的nss-ldap devise不好,在EL6中被nss-pam-ldapd取代。 你有没有这个问题的EL6机器?
如果问题是可重复的,并且您有实验的能力,我build议您尝试使用sssdreplacenss_ldap和nscd。 SSSD在RHEL / CentOS回购版中,可用于yum。 注意:sssd不会像nscd那样caching主机,如果你在使用sssd的时候需要caching主机名,你应该使用cachingDNS服务器(dnsmasq是非常容易的),或者使用nscd来caching主机。 SSSDcaching用户/密码/组信息。
build议1:/ var / empty / sshd是否存在? 它应该是一个拥有755权限的根目录。
build议2:/ etc / passwd文件中的任何错误? (即你运行pwck?)
build议3:尝试终止nscd守护进程。 nscd有一些错误,有时用passwd,组或主机信息caching不正常工作。
build议4:/ sbin / nologin是否存在?