Why:
Suspect a conflict with McAfee 8.0i. virus protection.


Symptoms:
ssh $USER@$LOCALHOST  reported an error of:
ssh-exchange-identification: Connection closed by remote host
Notes:
type the $USER and $LOCALHOST literally.  
$USER is the environment variable for the cygwin logged in user.
$LOCALHOST represents 127.0.0.1 which is the loopback address.


Diagnosis steps:
Launch services.msc from the command line and found that the ‘CYGWIN sshd’ service was started.
Do a ‘ps -a’ from Cygwin and an ‘sshd’ process was running, but it wasn’t able to log in.
Do a ‘net stop sshd’ and the process stopped normally.
Do a ‘net start sshd’ and the process started normally and I could log in.
Re-booted and tried to login from a different machine when the sshd server machine was at the login screen.  
Failed.
Do two ‘ssh $USER@$LOCALHOST’ in a  row.   
I found multiple instances of the sshd program using ‘ps –a’..  
There should only be one instance of sshd if it’s running as a service correctly. 


The Fix:
Use the Cygwin setup.exe program, click on the view menu and locate ‘rebase’ to the far right.  
You will have to make the dialog box larger by expanding it to the right.  Install this package.
Do a ‘ps –a’ from a cygwin window.  It will look something like this.
$ ps -a
      PID    PPID    PGID     WINPID  TTY  UID    STIME COMMAND
     1972     996     1972      2076    ?   18   Sep 13 /usr/sbin/sshd
     4016       1     4016      4016    1 1005 19:40:46 /usr/bin/bash
     6052    4016     6052      4136    1 1005 19:41:55 /usr/bin/ps

Notes:
‘ps’ is running because you just executed a ‘ps’ command.
‘sshd’ is running, but not correctly.
‘bash’ is running because your in the bash shell.
Close all process normally if you can.

Kill all the remaining processes by PID with bash being last.
e.g.
kill 1072
kill 6052
kill 4016

Your window will disappear.  Close all other unnecessary Windows programs.
Now, from the START/RUN menu, run the program ‘ash’ by typing it in the dialog.
It will open a cygwin-like window.  Only ash can be running for ‘rebaseall’ to work.
In that window type ‘/bin/rebaseall’
Wait for the prompt.
Re-boot, and all should be well.