The OpenSSH website is located at www.openssh.com
This website hosts a Windows installer package of Openssh for Windows that is actively maintained and current.
The sshwindows package hasn't been maintained for a long time
and is woefully out of date. I've been rolling my own
versions of this installer for quite a while and figured others might
find this useful as well.
I'll walk you through installation
and setup of the OpenSSH package for
Windows. First download the latest version (or the version of your choice), and head to the bottom of the page for a quick walk-thru
This is an updated OpenSSH 7.2p2-1-v1 installer (no changes to the version of OpenSSH) for both x86 and x64 binaries. I included an incorrect cygwin1.dll for x64 builds causing both ls.exe and mv.exe to fail.
This is an updated OpenSSH 7.2p2-1 installer for both x86 and x64 binaries.
This is an updated OpenSSH 7.2p1-1 installer for both x86 and x64 binaries. I made a couple small tweaks - spaces are allowed in the service password and using large passwords should not cause a prompt.
This is an updated OpenSSH 7.1p1-1 installer for both x86 and x64 binaries. I also took this opportunity to clean up the files to only the minimal dependencies. Let me know if you run into any missing file warnings.
This is an updated OpenSSH 7.1p1-1 installer for both x86 and x64 binaries.
This is an updated OpenSSH 6.9p1-1 installer for both x86 and x64 binaries.
This is an updated OpenSSH 6.8p1-1 installer for both x86 and x64 binaries.
The cygwin Local Security Authority (/bin/cyglsa) is present but NOT yet installed as an authentication model.
A copy is made of /etc/* to %TEMP%/etc.bak during uninstallation, and these files are copied back over the newly created /etc after upgrade or install so user changes are maintained (if you
want a clean install, then this folder must be deleted prior to running the installer).
A bug fix was made to the code that setup /var/empty in XP - cacls.exe is required to setup the directory. Fixed another small issue with the silent uninstalls so the '/S' is appended to the
path when the uninstaller is invoked from the installer.
Added support for installing x86 binaries on x64 (/x86=1 to force x86 install)
This is an updated OpenSSH 6.7p1-2 installer for both x86 and x64 binaries. Includes a fix to setup the home directory for both the client and the server.
This is an updated OpenSSH 6.7p1-1-v1 installer for both x86 and x64 binaries. The OpenSSH version is the same as the prior release, a few other packages got version bumped. This release fixes two major issues - it localizes the Administrator account correctly during install for privilege seperation, and it sets up /var/empty correctly for privilege seperation (again, with a localized username and fixing the logic to work correctly). If your OpenSSH 6.7p1-1 is working OK for you, no need to redownload this version.
This is an update to the latest OpenSSH 6.7p1-1 and OpenSSL 0.9.8zb and 1.0.1.i-1. There is also an updated BASH 4.1.17-9 (SHELLSHOCK bug fix is in 4.1.13-6 and greater).
This is an update to the latest OpenSSH 6.6.1p1-3 and OpenSSL 1.0.1.g-1 (this had been incorrectly marked as 1.0.1.h-1). The largest change is the combination of the 32 and 64 bit installations into a single binary - making maintenance easier
for me. There are also a number of small bug fixes/feature requests in this version per user requests.
- Allow user requested key size during install
- Added support for silent installs: /S /CLIENTONLY=1 or /SERVERONLY=1
- Fixed uninstaller to support silent uninstalls
- Fixed how home diretory is stored in registry
- Fixed uninstall bug in resetting the PATH - handling case where OpenSSH was in the middle of the path
- This is a new build (7/26/2014) - nothing changed except it was built to support string lengths of 8192 (fixing a bug someone ran into with a very large path). If this worked OK for you and didn't corrupt your path, no need to re-download this rebuild.
This is an update to OpenSSL 1.0.1g-1 to address the Heartbleed vulnerability (openssl is a crypt dependency, but not really used by openssh so this is not really relevant). The binaries for OpenSSH have stayed the same.
This is an update to the next released version of OpenSSH 6.6p1-1.
This is an update to the next released version of OpenSSH 6.5p1-1. Automatically installs/uninstalls firewall rules for openssh daemon.
Uses different compression algorithm for more efficient size.
Thanks to Simon for some recommended updates.
This is an update to the next released version of OpenSSH 6.4p1-1.
This is an update to the next released version of OpenSSH 6.3p1-1. There are some minor installer tweaks as well.
This is an update to the installer and fixes the
issue with the shell being mismatched for ssh/sftp, creates the ecdsa
key automatically, and provides updated ssh_config and sshd_config
This is an updated to the x86 and x64 binaries
to the next released version.
This is a small version update to the x86
binaries, and provides the first release
of an x64 OpenSSH version.
Updated OpenSSH version. This version adds a number of features and fixes to the code base, Silent (see navigation panel on the left for directions) installs being the newest feature. It also correctly implements sshd_server and privsep, fixes some bugs with writing some of the installation files, sets up the home link automatically, and streamlines the interface.
This version adds a number of features and fixes to the code base, Silent (scroll to bottom for directions) installs being the newest feature. It also correctly implements sshd_server and privsep, fixes some bugs with writing some of the installation files, sets up the home link automatically, and streamlines the interface.
Updated this version to fix a missing dependency with sftp (cygedit-0.dll)
Update binaries to OpenSSH 6.1p1
Update binaries to OpenSSH 6.0p1
Once you've downloaded the executable, start it up to be greeted with
the OpenSSH splash screen followed by the welcome and license screen.
You can select the defaults all the way through the
installation process if desired - these should work for most
The first point where you get to make some choices is the choose
Client - to install the ssh
client command line tools (if you want to connect to other ssh servers
Server - to install the ssh server command line application (if you
want to provide an ssh server for others to connect to)
Start Menu Shortcuts - a few start menu
next screen that requires some explanation is the "Choose account under
which to execute SSHD". The SSH Daemon (SSHD) can run as
Local_System or SSHD_Server. If you are using Windows Server (2003/2008/2008R2/etc.)
will likely have to run this as SSHD_Server, however all others should
be able to run this as Local_System. The default password
filled in for you is "D0ntGu3$$M3" - I would recommend changing it!
You can change this
using the Services Control Panel.
If you choose "Run as SSHD_Server", then you will be presented with the
privilege seperation option.
In general, it
should be OK to not use priviledge seperation unless you are running
you are running the sshd server, select the port. The default
port for ssh is 22, however you may select whatever you want (but then
you'll have to pass that in as on -p option when you connect)
You may now select the keysize. The default keysize of 2048 is probably sufficient, however if
you are truly concerned about your network privacy 4096 would be a good next choice.
configure ssh for either local users or domain users. This
determines how the password file is setup and you should probably
OpenSSH will begin to install and configure itself for your system.
At this point, openssh is setup and configured for your system.
try this out, open up a command prompt (cmd.exe) and try:
ssh -v (For OpenSSH 6.3 and below)
ssh -V (For OpenSSH 6.4 and above)
which will show you the version information.
installed the openssh server, it will start automatically after the
You may also open up a command prompt with administrator
priviledges and try:
net start opensshd
which should cause the opensshd daemon service to start
To stop the service (if/when you want to):
net stop opensshd
You can also stop/start the openssh service from the Services control
If you experience problems with the service, look in /var/log as it
might have a clue why the service is failing to start.
The original source code for sshwindows
came from SourceForge.net.