RHEL 5/CentOS 5-sshd 无响应

RHEL 5/CentOS 5-sshd 无响应

我有许多 CentOS 5.x 和 RHEL 5.x 系统的 SSH 守护进程变得无响应。这阻止了远程登录。

连接侧的典型错误是:

$ 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 身份验证,并且nsswitch.conf文件配置为首先查看本地“文件”。

[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

您对根本原因有什么想法吗?我没有看到任何涉及此问题的 Red Hat 勘误表。

答案1

Debian 错误#552431听起来很相似。

受影响的系统是否比未受影响的系统执行更多的 LDAP 查询?例如,邮件服务器、LDAP 认证的 DB 服务器?

EL5 中的 nss-ldap 是设计不太好,它在 EL6 中被 nss-pam-ldapd 取代。您有或没有这个问题的 EL6 机器吗?

如果问题可重现,并且你有能力进行实验,我建议尝试ssd 的替换 nss_ldap 和 nscd。SSSD 位于 RHEL/CentOS 存储库中,可通过 yum 获得。注意:sssd 不会像 nscd 那样缓存主机,如果您在使用 sssd 时需要缓存主机名,则应使用缓存 DNS 服务器(dnsmasq 非常容易实现这一点)或使用 nscd 仅缓存主机。SSSD 会缓存用户/密码/组信息。

答案2

提醒一下。我也遇到过这种情况:

sshd[*]: fatal: Privilege separation user sshd does not exist

我在 SAMBA 设置期间犯了非常基本的错误:

passwd:     winbind
group:      winbind
shadow:     files

至少应为:

passwd:     files winbind
group:      files winbind
shadow:     files

smbcontrol all reload-config

缺少文件信息导致无法从本地文件获取信息(据我所知)。我认为这种错误的设置会影响用户没有人从而导致问题。

附言:请随意纠正我:)

答案3

建议 1:/var/empty/sshd 存在吗?它应该是 root 拥有的 755 权限目录。

建议2:/etc/passwd 文件中有任何错误吗?(例如,您运行过 pwck 吗?)

建议 3:尝试终止 nscd 守护进程。nscd 有一些错误,有时使用密码、组或主机信息的缓存无法正常工作。

建议4:/sbin/nologin 存在吗?

相关内容