SSHD on Windows

Solution 1:

A Bash shell is not "MinGW32". I'm feeling generous today, so here goes...

Windows Bash shells

  1. Interix: abandonware, old subsystem developed by Microsoft providing a POSIX environment alongside the Win32 subsystem. It had a bunch of POSIX shells (ksh, csh, bash could be installed)
  2. Cygwin: provides a complete UNIX environment, through a compatibility DLL. Emulates fork and other UNIX-specific function calls. Contains a Bash shell.
  3. MSYS: A fork of an old Cygwin version, focused on running configure scripts (and later also git) on Windows. Using MSYS for anything more than a barebones Bash shell is suicide.

Other Unix-y stuff

  1. MinGW.org: project providing a native GCC compiler that links to msvcrt.dll. It provides an open implementation of the Windows API headers and allows using GNU tools to build native 32-bit Windows apps.
  2. Cygwin: Cygwin GCC is different from the above; you can only run your app when the Cygwin DLL is present, and it will always run under emulation of that POSIX environment.
  3. MinGW-w64: new alternative to MinGW.org, which provides the means to use GCC and GNU binutils to build native 32-bit and 64-bit Windows applications. It strives to provide a C99 compatible implementation, where msvcrt.dll allows that. You can also link to msvcr80, msvcr90, msvcr10 dll's if you wish.

Where does all the confusion come from?

MinGW.org maintain MSYS, and people not thinking clearly often give both the same name, or say both are the same thing. This is not true. MinGW(.org/-w64) is a CRT that heavily relies on msvcrt.dll. It has no Bash. It is not Bash. You could call "MinGW GCC" plain "MinGW", as the two are closely related. Don't call MSYS "MinGW32". That's just evil.


To answer your question: install cygwin, and use its package manager to install sshd.