我正在尝试在现有的 Windows 2008 (R2) 服务器上设置 git 存储库。我已成功安装 Cygwin 并将 git 和 ssh 添加到软件包中,一切运行正常(感谢 Mark他的文章)。
我可以 ssh 到服务器上的 localhost,也可以在服务器上本地执行 git 操作。但是,当我尝试从客户端执行任何一项操作时,都会收到“端口 22,文件编号错误”错误。详细的 SSH 输出仅限于此:
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to {myserver} [{myserver}] port 22.
debug1: connect to address {myserver} port 22: Attempt to connect timed out without establishing
a connection
ssh: connect to host {myserver} port 22: Bad file number
Google 告诉我,这意味着我被防火墙阻止了,通常是防火墙阻止的。因此,我仔细检查了服务器上的防火墙设置,规则是否允许端口 22 通信。我甚至尝试过短暂关闭防火墙,但行为没有任何变化。我可以从该客户端顺利 ssh 到其他服务器。托管公司发誓没有其他防火墙在端口 22 上阻止该服务器(他们声称或其他任何端口,但我觉得很难相信)。我给他们发了另一张故障单,以防第一个支持人员对此感到困惑,但同时我想看看是否有人能想到其他可能的原因。
谢谢,保罗
答案1
2008 上的 Windows 防火墙有三种不同的配置文件:私有、公共和域。不确定您的服务器是否在域中,但如果您还没有这样做的话,我会在防火墙中的私有、域和公共配置文件中添加一个例外。
答案2
好吧,事实证明我与托管公司的第一个人交谈时说错了。事实上,问题在于他们默认阻止了其网络中装有 Windows 服务器的部分使用端口 22。我已申请豁免该政策。
保罗