copssh:在一台机器上SSH“连接被拒绝”,在其他机器上成功

虽然我可以从客户端连接到服务器( openssh <servername>提示login信息),我得到“ ssh: connect to host <servername> port 22: Connection refused ”在另一个。

因为不是UNIX向导(因此:对于这个问题中的所有错误或遗漏的术语感到抱歉),我正在使用统一来同步文件系统分支。 unison通过ssh使用ssl隧道。 这就是为什么我有运行在服务器(XP)和客户端(有一个很好的SSH客户端)的copssh。

失败的机器有重新安装的copssh。 所有的机器都运行XP。 我尝试closures所有本地防火墙,并且一直在openssl和sshconfiguration文件中查找,但我完全找不到原因。 我什至没有find有用的日志,或什么的。 服务器上Windows的事件协议在连接失败过程中不包含任何条目。

我该如何诊断? 我真的想解决这个问题。

局域网使用N300无线路由器型号WNR2000v2。 有故障的客户端在有线局域网上,工作在无线上。 但是,如果我把工作客户端连接到有线局域网(我已经检查过了),它仍然有效。 任何地方都没有端口22阻塞规则。

我浏览了所有相关的问题,但没有发现真正可比的答案,除了涵盖了我已经validation的可能原因的答案。

拒绝连接通常意味着两件事。 要么有阻止连接的防火墙(可能是path上的networking防火墙或主机防火墙),或者您尝试连接的主机上的端口未打开。

根据你所说的没有防火墙,所以你应该首先检查主机上的端口是否真的打开。 做一个netstat -n -p tcp并检查ssh端口是否在监听。 你应该看到这样的一行:

 TCP 0.0.0.0:22 0.0.0.0:0 LISTENING 2518 

如果你不这样做,那就意味着,由于某种原因,SSH服务还没有启动,你应该检查copssh的日志。 日志可能不在事件查看器中,您还应该检查程序的目录。

如果你看到SSH端口在监听,那么有些东西阻塞了你。 你应该运行一个Wireshark,并检查预期的stream量是否到达你的主机,并试图find沿path被阻塞的地方。

我find了

不是我有一个很好的机会,因为这显然没有logging,但通过validation我的整个IP设置,我想我有错误的客户端的主机文件(在Windows \ System32 \ drivers \ etc下)旧的条目。 这导致服务器的实际IP与DNS报告的实际IP不同,并且CheckHostIP被设置为YES(当然)。

由于机器已经在几个月前被移动到DHCP LAN(!,其他所有的东西都太容易了),所以对于一个固定的IP主机文件没有必要(也没有允许)。 丢弃它 – 工作。

该死的!

对不起,问。 感谢您的答复,即使这不是解决scheme。 (如果我遵循包嗅探分析的build议,我也会发现它,这就是我接受AntiFubar的答案的原因,而不是我自己的答案。)