Linux
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 勘誤表。
Debian 錯誤#552431聽起來非常相似。
受影響的系統是否比未受影響的系統執行更多的 LDAP 查詢?例如,郵件伺服器、LDAP 認證的數據庫伺服器?
EL5 中的 nss-ldap設計不好,在 EL6 中被 nss-pam-ldapd 取代。你有沒有這個問題的EL6機器?
如果問題是可重現的並且您有能力進行實驗,我建議嘗試使用 sssd替換 nss_ldap 和 nscd。SSSD 位於 RHEL/CentOS 儲存庫中,可通過 yum 獲得。注意:sssd 不像 nscd 那樣記憶體主機,如果您在使用 sssd 時需要記憶體主機名,您應該使用記憶體 DNS 伺服器(dnsmasq 非常容易)或使用 nscd 僅記憶體主機。SSSD 確實記憶體使用者/密碼/組資訊。