远程主机拒绝 SSH 连接

远程主机拒绝 SSH 连接

我在 CentOS 6 上运行了 2 个 VPS,Server1 和 Server2。我可以从我的 PC 使用 SSH 访问这两个服务器,但是当我使用以下命令从 Server2 连接到 Server1 时:

ssh [email protected] -p 22 

我收到此错误:

无法连接到 xxx.xx.xxx.x:22:连接被拒绝

这仅发生在 Server2 上。Server1 可以毫无问题地连接到 Server2。

我确定我的 SSH 端口是 22,我已在两台服务器上停止了 iptables,并已检查主机允许和拒绝配置。我该如何修复此问题?

答案1

首先,要通过 ssh 连接到端口 22 上的另一台服务器,您不需要 -p 开关。它是默认端口,无需指定该端口,ssh 就可以完成。基本上,您想查看服务器之间的端口 22 是否打开。一个简单的 telnet 客户端就足够了。在 shell 提示符下执行以下命令。

telnet servername 22

如果您看到一些类似 openssh 的文本,然后返回到 shell 提示符,那么这不是防火墙问题。

答案2

我至少可以告诉你它卡在哪里。三种常见的调试方法按此顺序排列。

ssh -vvvv root@<XX.XX.XX.XX>

检查输入密码后哪里出错了。如果你想让我们看到,请使用 pastebin。

strace -ffttTo /tmp/strace.out ssh root@<XX.XX.XX.XX>

如果您希望我们看到 strace 数据,请再次使用 pastebin。

最后也是最致命的,

tcpdump  -s0 -i ethX 'port 22' -w /tmp/ssh.pcap 
ssh root@<XX.XX.XX.XX>

当 ssh 失败时,按 ctrl-c 停止 tcpdump。显然,您需要从不同的控制台进行 ssh。

不要把这些数据给我们,别人会看到一切。

答案3

查看是否允许 root 登录在服务器 2 上,如果运行远程控制-vvv标志,您应该看到导致失败的原因。

相关内容