Commercial SSH servers generally provide tools for generating public/private key pairs. The OpenSSH command-line tool ssh-keygen is a freely available tool for manipulating keys, and is recommended.
For example, use
ssh-keygen -t dsa
to generate a DSA keypair.
Other commonly used key generation tools include ssh-keygen2 (an ssh.com tool) and PuTTYgen.