Hi,
Ive read through the issues people have been having using public key encryption, I had pulled my hair out too so i thought it might be of some benefit to detail my experiences for anyone still struggling.
This is what worked for me -
Setup - Laptop winxp running freesshd
- Desktop winxp running , putty , winscp client
First things first -
1) On winsshd server create your user account, i.e. mitchell.dawson and select NT authentication.
Under " authentication " disable password authentication and allow public key authentication.
2) On the server machine create a directory under the users profile like this example - C:Documents and Settingsmitchell.dawsonssh_public_keys
3) Using PuttyGen generate an openssh keypair, copy the public key output hash into a notepad document and save into the directory you created i.e C:Documents and Settingsmitchell.dawsonssh_public_keys. The name of the file has to be exactley the same as the username thats logging on i.e. the user account that you created in step 1.
4)Now some of you doing this im guessing arent setup to show file extensions automatically. i.e you see a notepad file because of the icon and not because it has a .txt extension. If you go to my computer , tools , folder options , view , untick " hide extensions for know file types " click apply etc.
5) Now go into your created directory and you should see your saved pulic key notepad doc with a .txt extension, like this " mitchell.dawson.txt . Right click the file and select rename, then delete the .txt extension. The icon will change from a text pad icon to an unknow file format icon.
6) Hopefully you havent closed down puttygen by this stage !! click save private key ( I didnt use a passphrase this time round so i recommend you dont until your more familiar with the setup )
ignore the passphrase prompt and save somewhere safe as you need to tranfser this to the client machine.
7)In freesshd under authentication , enter your path for the public key , my example being - C:Documents and Settingsmitchell.dawsonssh_public_keys
click apply and save etc

Transfer your saved private key onto your client machine, open putty and enter the server ip address , under authentication , tick all boxes and browse for your saved private key.
9) open the session , and you should be met with the username prompt ( this is the account that you created in step 1, enter eg mitchell.dawson
10) If all has gone to plan the you should see -
login as: mitchell.dawson
Authenticating with public key "rsa-key-20060220"
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:Documents and Settingsmitchell.dawsonDesktop>
I appreciate others have differnet ways of doing the same thing, but i was scratching my head , and just by trial and error managed to nail it. Feel free to drop me a mail , and ill try and assist if i can -
Cheers