Cygwin SSH服务器不接受连接


14

我刚刚使用cygwin在Windows 7计算机上设置了SSH服务器(OpenSSH),并且试图在Windows Vista计算机上使用PuTTY连接到它,但是我一直使Connection超时。我用Wireshark检查了Win 7机器上的网络活动,发现我在Win 7机器上的端口22上收到TCP SYN,但是ssh服务器似乎没有响应。我已经检查了将sshd配置为使用的端口号,检查了我的防火墙规则,并验证了我可以ssh localhost(可以)。我绝对不知道如何解决此问题。


您可能应该再次检查防火墙,和/或在这方面进行详细说明。
jjlin 2012年

Answers:


23

您可能正在运行Windows防火墙。打开:控制面板-> Windows防火墙->允许程序或功能通过Windows防火墙

单击“更改设置”按钮,然后单击“允许另一个程序...”按钮。SSHD可能不在出现的列表中,因此请使用“浏览...”按钮查找二进制文件,然后单击“打开”,然后单击“添加”。我的是在C:\ cygwin \ usr \ sbin \ sshd.exe中

您可以在其中的某个位置决定要使用的“网络位置类型...”。我离开了我的私人检查和公共检查。我现在可以远程登录。


除了弗兰克的回答,当我在家庭网络的计算机上安装隐私VPN时,我也遇到了同样的问题。这是因为通过VPN,计算机现在可以通过公用网络与sshd连接。为了解决这个问题,我必须允许通过Windows防火墙的sshd用于公共场所和私人场所。
James Hirschorn 2015年

5

您的sshd_config是否将ListenAddress指定为0.0.0.0127.0.0.1

如果它是0.0.0.0或已被注释掉,则可以从计算机外部(即从另一台计算机)连接。

如果它是127.0.0.1 (或任何其他127.0.0.x号),则它仅在LOCALHOST上侦听,并且您只能从SAME计算机登录。外部计算机被拒绝。


2
已被注释掉。
Surma

1

在搞乱了Windows防火墙后,我最终发现我不得不允许通过/etc/hosts.allow文件连接到Cygwin自己的子网。

此行(使用我的子网)作为第一条规则为我解决了该问题。

全部:192.168.0.0/24:允许


1
hosts.allow或hosts.deny的问题不会导致连接超时。这将导致SSH服务器接受连接,然后在身份验证过程中将其删除。
Kenster 2014年

@Kenster hosts.allow和hosts.deny在TCP级别工作。您将无法连接到SSH服务器,因为您在到达SSH服务器之前就已在第4层被阻塞。
mtak 2014年

@mtak不,那不是真的。hosts.allow和hosts.deny是TCP包装器的配置文件。服务器程序(在本例中为sshd)必须接受TCP连接,获取远程端点的IP地址,然后调用TCP包装器以查看是否应允许客户端。如果libwrap拒绝,则服务器通常会断开连接。
Kenster 2014年

例如参见sshd.c。查找LIBWRAP ifdefs。这是sshd正在调用的hosts_access函数。我还将注意到,最新版本的sshd.c删除了libwrap支持。
Kenster 2014年

@Kenster,我不好,你是对的。我尝试了它,并收到以下错误:ssh_exchange_identification: Connection closed by remote host。SU的
好日子


0

确保您是win 7 Antivirus不会阻止端口22。此外,转到Windows服务面板并搜索CYGWINsshd并启用它。设置登录以找到并选中该框。

这样可以解决问题:user @ mymachine〜$ net start sshd发生系统错误1069。

由于登录失败,该服务未启动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.