RedHat Linux - ssh 使用一个用户和 root 显示“连接被拒绝”,但另一个用户可以连接

RedHat Linux - ssh 使用一个用户和 root 显示“连接被拒绝”,但另一个用户可以连接

从服务器 Y,用户 A 尝试通过 SSH 连接到服务器 X,但连接被拒绝。从服务器 Y,用户 B 尝试通过 SSH 连接到服务器 X,并被允许通过。从服务器 Y,root 尝试通过 SSH,但连接被拒绝。该问题 100% 可重复,并且 100% 一致。

前两个提示 ACL 存在问题,但我被告知这两个用户的设置相同,尽管我没有查看它们的权限。它们也曾被删除并重新添加,但没有成功。但是,root 不受 ACL 影响,也无法连接。

有两台服务器存在此问题,还有许多其他服务器在 ifconfig 中具有相同的设置(IP 地址等除外)并且路由表不存在此问题。

当用户 A 尝试连接时,在服务器 X 上查找来自服务器 Y 的连接,tcpdump 不会显示任何信息,但当用户 B 尝试连接时,会显示大量信息。这表明当用户 A 尝试 ssh 时,服务器 X 没有收到任何信息。

所有服务器都运行 RedHat

我假设问题出在服务器 Y 上,但我应该寻找什么?基于用户名的连接问题是否出现在服务器之间的防火墙中,或者这些防火墙不是基于用户名的?

编辑 - 用户 A 和 B 都可以从服务器 Y ssh 到组中的许多其他服务器。只有服务器 X 有问题。ssh 不使用 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 的反向列表。将服务器从此限制列表中删除后,所有用户都可以访问。

感谢您的所有评论和指导。

相关内容