* ** This has been merged into [[cygwin|the cygwin page]]. ** *
A shorter version of [[http://pigtail.net/LRP/printsrv/cygwin-sshd.html|this very verbose HOWTO]].
===== User setup =====
All users MUST have passwords. Login as an administrator.
===== Install CYGWIN =====
Download cygwin's setup.exe from http://www.cygwin.com/ and save it somewhere with a fair bit of space. All the package tarballs will be saved there. Run setup.exe.
Set the "Root Directory" to where you want to install cygwin, e.g. "C:\Program Files\cygwin". Set "Install For" to "All Users".
Set "Local Package Directory" to the place where you saved setup.exe.
Pick a mirror; "http://mirrors.kernel.org" is always good.
On the giant package selector, pick (at least):
* openssh
* zlib
* diffutils
You can get an alphabetical package list by clicking the little View button for "Full" view.
Install.
===== Setup =====
Right click My Computer, Properties, Advanced, Environment Variables.
Click the "New" new button to add a new entry to System variables:
CYGWIN=ntsec tty
Edit the global PATH environment variable to add the 'bin' directory under where you installed cygwin:
;c:\Program Files\cygwin\bin
Open a cygwin shell. **If running something with UAC, run the cygwin shell as administrator (right click, run as administrator).**
$ chmod a+r /etc/passwd /etc/group
$ chmod 777 /var
$ ssh-host-config -y
If the script asks you about "privilege separation", "create a local user sshd on this machine", or "install sshd as a service", answer yes.
If it asks for environment variable "CYGWIN", answer "ntsec tty"
Start it up:
$ net start sshd
or
$ cygrunsrv --start sshd
If the service fails to start, try:
$ chown system /etc/ssh*
$ chown system /var/empty
As an aside, if you want your drive letters to be available as ''/c'' instead of ''/cygdrive/c'', edit /etc/fstab and edit the commented-out cygdrive line so it reads:
none / cygdrive binary,posix=0,user 0 0
Then re-read the file with:
$ mount -a
===== Firewall =====
If using Windows firewall, add a program rule that allows all connections to ''\usr\sbin\sshd.exe''.
===== User setup =====
//Optional? I didn't have to do this step on my Windows 7 install.//
Make sure every Windows user has a password set. Then, in a bash shell:
$ mkpasswd -cl > /etc/passwd
$ mkgroup --local > /etc/group