我/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
。