RedHat Linux - ssh 使用一個使用者和 root 顯示“連接被拒絕”,但另一個使用者可以連接

RedHat Linux - ssh 使用一個使用者和 root 顯示“連接被拒絕”,但另一個使用者可以連接

使用者 A 嘗試從伺服器 Y ssh 到伺服器 X,但連線被拒絕。使用者 B 嘗試從伺服器 Y ssh 到伺服器 X 並被允許通過。 root 嘗試從伺服器 Y 進行 ssh,但連線被拒絕。該問題 100% 可重複且 100% 一致。

前兩者表明 ACL 存在問題,但我被告知這兩個用戶的設定是相同的,儘管我沒有查看它們的權限。它們也被刪除和讀取但沒有成功。但是,root 不受 ACL 影響,也無法連線。

有兩台伺服器有此問題,許多其他伺服器在 ifconfig 中具有相同的設定(IP 位址等除外)和路由表,但不會遇到此問題。

當使用者 A 嘗試連線時,在伺服器 X 上尋找來自伺服器 Y 的連線的 tcpdump 不會顯示任何內容,但當使用者 B 嘗試連線時會產生大量資訊。這表示當使用者 A 嘗試 ssh 時,伺服器 X 沒有收到任何訊息。

所有伺服器都運行RedHat

我假設問題出在伺服器 Y 上,但我應該尋找什麼?伺服器之間的防火牆中是否會出現基於使用者名稱的連線問題,或者此類防火牆不基於使用者名稱?

編輯 - 用戶 A 和 B 都可以從伺服器 Y ssh 到群組中的許多其他伺服器。只是伺服器 X 有問題。 ssh-ing 不使用 RSA,儘管先登入伺服器 Y 會使用 RSA。

答案1

檢查使用者A的.ssh/config檔案。他可能Host在該檔案中存在有關有問題的主機名稱的條目,這導致ssh為該主機名稱嘗試不同的連接埠或 IP 位址。例如,如果.ssh/config有這些行:

Host a.example.com
    Hostname b.example.com
    Port 42

然後執行“ssh a.example.com”將嘗試連接到 b.example.com 連接埠 42。

另一種(不太可能)的可能性是,使用者 A 由於某種原因正在執行不同的「ssh」程序,例如,因為他的命令路徑不同,備用程式的行為不符合預期。

編輯:另一個不太可能的可能性是網路上有兩台主機響應同一個 IP 位址。失敗的連接請求將發送到錯誤的伺服器並由錯誤的伺服器應答。這會導致連接隨機失敗,而不是每個用戶一致失敗,因此它與您描述的行為並不真正匹配。

答案2

這個問題已經解決了。

有兩個訪問列表 - 第一個是眾所周知的 (ACL),它列出了用戶可以連接到的伺服器,第二個是以前未知的伺服器列表,僅允許某些用戶訪問,即 ACL 的反向列表。將伺服器從此限制清單中刪除後,所有使用者都可以存取。

感謝您的所有評論和指導。

相關內容