虽然我可以从客户端连接到服务器( 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的答案的原因,而不是我自己的答案。)