尽管 PermitRootLogin 允许,但 ssh 连接仍被拒绝

尽管 PermitRootLogin 允许,但 ssh 连接仍被拒绝

/etc/ssh/sshd_config修改并添加了以下内容:

PermitRootLogin no
Match Address 192.168.0.*
    PermitRootLogin yes

但是,当我尝试通过 ssh 连接时,我得到了Connection refused

我知道是那些线条影响了它,因为如果我删除它们,然后让它保持原样

PermitRootLogin yes

我可以正常连接。这是怎么回事?似乎 SSH 忽略了Match阻止。

答案1

连接被拒绝表示 TCP/IP 层(例如 L3)的某些东西阻止了您,而不是 sshd 守护程序拒绝了您的登录。

这可能是由于路径中某处有防火墙或类似的东西。只要你得到连接被拒绝身份验证设置无关紧要;在此阶段,ssh 服务器和客户端之间没有通信。

答案2

正如@vidarlo 指出的那样,Connection refused这表明 TCP/IP 层存在问题;无论配置文件中的设置如何,服务器和客户端之间都不会发生通信,因此这表明存在单独的问题。

按照sshd -T@Mrwut 指出的方法,发现sshd_config文件中有一个错误。错误在于Match块必须位于文件末尾sshd_config,而不是位于文件中间。这是因为块Match无法手动终止,因此如果块后声明了Match块中不能包含的内容Match,则会引发错误,导致 SSH 服务器无法启动。

由于 SSH 服务器无法启动,因此无法建立与服务器的连接,因此Connection refused

相关内容