Table of Contents
* This has been merged into the cygwin page. *
A shorter version of 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 <CYGWIN_PATH>\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