SSH Key Pair Generation

To generate a ssh key follow the instructions for your platform:

Windows


Download puttygen from http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html and follow the instructions here https://the.earth.li/%7Esgtatham/putty/0.67/htmldoc/Chapter8.html#pubkey-puttygen
Alternatively if you have git for windows already installed you can use git bash to follow the Mac/Linux instructions.

Mac/Linux


Open up a terminal and run:
ssh-keygen -t rsa -b 4096 -C rwky

Follow the on screen instructions. Once generated run
cat ~/.ssh/id_rsa.pub (assuming you used the default file path when generating the key, if you didn't run cat /path/you/specified.pub

Copy the output, this is the public key, it should look something like this:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDF5fQF5O65DtnjlxIJTgCn9V1yURLLoOoXXCuApff/+hKS/O0wtAhDGeyrsxgmhffvVE1Jv3kd9gVw4PjXqLhx4rAbJ6D7I1AkR2X5j84NE8TRCBRFZiS8n1hZLvNH+AjcxyrJPLmZQZO/T6elxMPe96TxdsYKTqUlTRNzbbJIki8xbcpotWvq0GYUuwdyYdmcLNPntmw0B7+OUlDkcu0Ptnp/7ndB+dNYrwbcDflJgNPrtrWQlKaazHpcSiqcLRHdUN49a0lqAkmv2sFRBZbLDgcxjsRd9wX8ppuGGinWd9zvGL8dRaC4CDAWMw1lMzwkmFAhh9CoYbiOtJ90sGSmh7xpBSjLWP17H65/Z07/4+UtHdT5fTwPq7n9A9HTXRW/+5v9xEpAzpCBKZRxvNqLH4poY7oNNzqWSZJWsR5efofT8FFmcob818szzHuL9OFDKsU9PPsrucnzZ2wXeoP3WO80wCdiyLIXFyDBG7Kzg02DRu3+rVHqIPlEPMiD45NDRKfKFPSzkECvtUCr0/IvFeOPuRj7HrLjLT+TeMCXT5UextdvOCVpRM+1+b+ATat1ZdN/B82TGnz3TitYf7HgwsRVC/9XR7cUjwQy6cCQZ8c6At3Nml/KJehvro5YAI6/JlR1Bwq9CHOaAQCMYmS1jLP4/VwwzooJRbT19/kolw== admin@rwky.net

It must start with ssh-rsa if it doesn't then you probably ran cat on your private key and should not share this with anyone.

It is very important that you keep the private key private.

Your key pair will be used for both SSH command line access and SFTP file transfer.

SSH/SFTP clients

I recommend the following ssh and sftp clients.
Windows SFTP: WinSCP
Windows SSH: Putty
Windows/Mac SFTP: Cyberduck
Windows/Mac/Linux SFTP: FileZilla
Mac/Linux have ssh already installed using the command ssh in the terminal.
Git for Windows has ssh built into git bash which has the ssh command.