我有2个VPS在CentOS 6,Server1和Server2上运行。 我可以从我的PC上用SSH访问两台服务器,但是当我使用以下命令从Server2连接到Server1时:
ssh [email protected] -p 22
我得到这个错误:
无法连接到xxx.xx.xxx.x:22:连接被拒绝
这只是发生在Server2上。 Server1可以连接到Server2没有任何问题。
我相信我的SSH端口是22,我已经停止在两台服务器的iptables,我已经检查主机允许和拒绝configuration。 我怎样才能解决这个问题?
首先SSH端口22上的另一台服务器,你不需要-p开关。 这是默认的端口和SSH将能够完成没有指定。 基本上你想看看端口22是否在服务器之间打开。 一个简单的telnet客户端应该就足够了。 在shell提示符下执行以下命令。
telnet servername 22
如果你看到一些像openssh这样的文本,然后回到shell提示符,那么这不是防火墙问题。
检查服务器2上的rootlogin是否被 授权 ,如果使用-vvv标志运行ssh ,则应该看到导致失败的原因。
我至less可以告诉你它卡在哪里。 三种常见的debugging方法将按照这个顺序。
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从不同的konsole。
不要把这个数据给我们,人们将能够看到一切。