Using puttygen is one of way of doing it, but I believe it's just easier to use ssh-keygen
from a linux box to generate the private/public key pair.
From a linux box as 'root':
$ adduser myuser
$ su myuser -
$ ssh-keygen -t rsa
Your private/public key pair will be /home/myuser/.ssh/id_rsa (private) and /home/myuser/.ssh/id_rsa.pub (public)
Now just paste the content of id_rsa.pub into /home/myuser/.ssh/authorized_keys in the machine where you are running your sftp server. Make sure the authorized_keys
file has 600
permissions.