Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've just set up an SSH server (OpenSSH) on a Windows 7 machine using cygwin and I'm trying to connect to it using PuTTY on a Windows Vista machine but I keep getting Connection timed out. I've checked the network activity on the Win 7 machine with Wireshark and found that I am receiving TCP SYN on port 22 on the Win 7 machine, but the ssh server doesn't seem to reply. I've checked the port number sshd is configured to use, checked my firewall rules and verified that I can ssh localhost (which I can just fine). I have absolutely no idea how to troubleshoot this problem.

share|improve this question
    
You should probably check your firewall again, and/or elaborate on this aspect. –  jjlin Jul 5 '12 at 16:54

3 Answers 3

You may have Windows Firewall running. Open: Control Panel -> Windows Firewall -> Allow a program or feature through Windows Firewall

Click the "Change settings" button then the "Allow another program..." button. SSHD is probably not in the list that comes up, so use the "Browse..." button to find the binary and click "Open" and then "Add". Mine was in C:\cygwin\usr\sbin\sshd.exe

Somewhere in there you can decide which "Network location types..." you want to use. I left mine with Private checked and public unchecked. I can now login remotely.

share|improve this answer

Does your sshd_config specify ListenAddress as 0.0.0.0 or 127.0.0.1?

If it's 0.0.0.0 or just commented out, then you can connect from outside the machine, ie, from another computer.

If it's 127.0.0.1 (or any other 127.0.0.x number), then it's ONLY listening on the LOCALHOST, and you can only log in from the SAME machine. External machines are denied.

share|improve this answer
1  
It's commented out. –  Surma Jul 8 '12 at 13:40

After messing around with windows firewall to no effect I eventually found I had to allow connections to my own subnet in Cygwin itself via the /etc/hosts.allow file.

This line (using my subnet) as the first rule fixed the issue for me.

ALL : 192.168.0.0/24 : allow

share|improve this answer
    
A problem with hosts.allow or hosts.deny wouldn't cause a connection timeout. It would cause the SSH server to accept the connection, then drop it during the authentication process. –  Kenster Jun 19 at 13:45
    
@Kenster hosts.allow and hosts.deny work at TCP level. You would not be able to connect to the SSH server because you get blocked at layer 4, before even reaching the SSH server. –  mtak Jun 19 at 14:07
    
@mtak No, that's not true. hosts.allow and hosts.deny are configuration files for TCP Wrappers. The server program (sshd in this case) has to accept the TCP connection, get the remote endpoint's IP address, then call TCP wrappers to see if the client should be allowed. If libwrap says no, then the server typically drops the connection. –  Kenster Jun 19 at 14:25
    
See eg sshd.c. Look for the LIBWRAP ifdefs. Here is the hosts_access function that sshd is calling. I'll also note that the most recent version of sshd.c removes libwrap support. –  Kenster Jun 19 at 14:28
    
@Kenster, my bad, you are right. I tried it and I get the following error: ssh_exchange_identification: Connection closed by remote host. Good day on SU :) –  mtak Jun 19 at 14:32

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.