Trying to set up a public key authenticated ssh server on windows (essentially to see if I can get it to work simply with Julia for running parallel code across machines).
I was trying two clients, Bitvise and Putty
Bitvise worked straight away though commercial and is more elaborate than I was looking for
I didn't get KpyM to work as although the server ran but I couldn't connect either with a plain password or with keys.
The same story for CopSSH
And nearly the same story or worse for FreeSSHd as it wouldn't even run on my Windows machine even after following the excellent IBM explanation
What did work for me?
Download and install FreeSSHd as noted in the IBM explanation up to the point where it fails to run
Using Ollydbg or some hex editor follow the guide to change the FreeSSHDService.exe to remove some startup check that the actual user is the administrator. Note the easiest approach is to search from the top and change the second 74 49 to 90 90 which will be around if not that close to 00013726
You can view a file under view|file with Ollydbg which is an amazing program
I then completed the rest of the IBM guide, ran FreeSSHDService.exe as an administrator and to my amazement connected - I'd tried a lot of configurations and key creations before.
ssh-keygen.exe (in the windows git distribution) is another easy way to create keys
I used separate real full path directories in FreeSSHd and copied the public key for the user in the public key directory - note the same case and spelling as the user with no extension and in the open ssh format (i.e. not putty's)
Some things that weren't that obvious to me initially.
Run as Administrator in windows give a full administrator access to an application but you are still running as the same user. So when FreeSSHd complains that it's not run as an administrator it's referring to the user, hence the fix required - not the the administrative rights of the user. psloggedon from Mark Russinovitch's ever useful systinternals clarified that.
Putty has it's own individual formats of the public and private keys (the headers are different)