机器A和B正在尝试连接到机器C.
A到达那里。当我做ssh -v ip时,我得到:
OpenSSH_5.1p1, OpenSSL 0.9.8j-fips 07 Jan 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to C.server.ip.addy [C.server.ip.addy] port 22.
debug1: fd 3 clearing O_NONBLOCK
然后有更多的调试并不重要。
B无法到达那里。当我做ssh -v ip时,我得到:
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to C.server.ip.addy [C.server.ip.addy] port 22.
debug1: connect to address C.server.ip.addy port 22: Connection timed out
ssh: connect to host C.server.ip.addy port 22: Connection timed out
永远不会到达的行是:
debug1: fd 3 clearing O_NONBLOCK
这会导致什么?请帮忙!
答案 0 :(得分:0)
一个可能的原因可能是防火墙配置错误(A => C端口443允许,B => C =拒绝)。
在任何情况下,如果您有权访问C机器,请放置一个像WireShark这样的数据包嗅探器,并检查源自B的数据包是否实际到达机器。
答案 1 :(得分:0)
我可以想到几件可能导致这种情况的事情。
B-> C之间的防火墙可能会阻止连接。这些机器在同一子网上吗?有防火墙吗?这样的规则可能允许您连接C-> B。您可以使用scp将文件拉向此方向。像
这样的东西 C$ scp user@B:/path/to/file /local/path/to/file
tcpwrapper规则可能会产生类似的效果。你在/etc/hosts.deny中有一个阻止来自机器B的SSH的规则吗?有关更改tcpwrapper规则的信息,请查看hosts.allow和hosts.deny的手册页。
您应该使用nmap来检查哪些端口是打开的,并且可以从B和A访问。以下内容应该为您提供一些好的信息。如果端口22从A打开而不是B打开,则上述其中一个可能阻止它。
nmap -T4 -A -P0 -p0-65535 C