Linux

RHEL 5/CentOS 5 - sshd 變得無響應

  • April 15, 2020

我有許多 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 確實記憶體使用者/密碼/組資訊。

引用自:https://serverfault.com/questions/456813