Sshd on Windows

Jump to: navigation, search

This is obsolete in newer versions of Cygwin, but may come in handy if reconfiguring or in debugging a problem.

Cygwin SSHD HowTo -- How to run the OpenSSH SSHD server on Windows using Cygwin

Install the following Cygwin packages (rerun setup if necessary -- you can add packages after you have already installed Cygwin).

   Admin --> cygrunsrv
   Net --> openssh

Open a new bash shell window and run the SSH configure stuff.

   ssh-host-config -y

This step will create necessary configuration files, a privilege separation user and necessary directories.

When prompted with "CYGWIN=" type for following:

   tty ntsec

Now you are ready to start the service.

   cygrunsrv -S sshd


ssh: Permission denied

Problem: you can't login to your account. You set the password using `passwd`, but it still gives you this error.

Solution: The problem is that sometime Cygwin does not create your local user in the /etc/passwd file. The solution is simple:

mkpasswd.exe -l > /etc/passwd

Now you should see your Windows user in the passwd file. Now use the `passwd` command to give yourself a password for the Cygwin user. This is not the same as the Windows user.

Win32 error 1062

Sometimes you get a sshd/cygrunsrv service error after trying to run the service.

   cygrunsrv: Error starting a service:
   QueryServiceStatus: Win32 error 1062:
   The service has not been started.

There can be a couple of causes for this. The following may fix the problem (this is not an option on XP Home).

Solution 1

You may have an old or corrupt installation of Cygwin. Try reinstalling. The following may also help:

cygrunsrv -R sshd

REBOOT (or use the Task Manager to kill all instances of sshd that may be running in the background) run "ssh-host-config -y" again. This seemed to help on a few systems I worked on.

Solution 2

Open an explorer window and use the "Properties | Security" dialog and explicitly add "Full Control" for the SYSTEM user to the following directories: