远程主机拒绝 root 的 ssh 连接

远程主机拒绝 root 的 ssh 连接

我有一台主机,我正在努力允许远程访问 - 每次我尝试连接时都会被拒绝连接。

在目标上,我检查了端口是否开放:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN      47081/sshd

在 sshd_config 中我已经设置了允许的用户并匹配 permitrootlogin:

AllowUsers [email protected]

PermitRootLogin no

Match Address 1.2.3.4
        PermitRootLogin yes

当我尝试从 1.2.3.4 连接时,使用以下命令拒绝连接:

ssh -vv [email protected] -p 2222

回复:

# ssh -vv [email protected] -p 2222
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 5.6.7.8 [5.6.7.8] port 2222.
debug1: connect to address 5.6.7.8 port 2222: Connection refused
ssh: connect to host 5.6.7.8 port 2222: Connection refused

5.6.7.8 上的 /var/log/secure 或 /var/log/messages 中没有任何内容表明被拒绝的原因

SELinux 和 CSF 均被禁用,且其间没有其他防火墙。

我可以从我的桌面连接到 5.6.7.8:2222 而没有任何问题,但不能从另一台主机连接(我尝试了 2 个不同的远程主机)——我遗漏了什么?

答案1

在服务器上运行 tcpdump 或 tshark 并尝试从 1.2.3.4 连接。

  • 您是否看到来自 1.2.3.4 的 SYN,后面跟着发回 1.2.3.4 的 ICMP 数据包?那么问题就出在服务器上。

  • 您在捕获中没有看到 SYN 吗?那么路径中的某些东西阻止了 SYN,或者 1.2.3.4 上存在某些东西。

答案2

尝试从桌面和其他有问题的主机以详细程度进行连接,并查看输出有何不同:

ssh -vvv [email protected] -p 2222

如果这没有显示足够的信息,请在服务器上启动 sshd 服务

$(which sshd) -d -p 2222

这将提供更多输出。如果这没有给你明确的答案,请检查两个主机上的 ssh 版本,如果它们不同,则可能存在版本不兼容。

相关内容