How do I setup Public-Key Authentication for SSH?

+1  A: 

This is good tutorial on how to setup Public-Key Authentication.


+1  A: 

For windows this is a good introduction and guide

Here are some good ssh-agents for systems other than linux.

+7  A: 

If you have SSH installed, you should be able to run..


Then go through the steps, you'll have two files, idrsa and idrsa.pub (the first is your private key, the second is your public key - the one you copy to remote machines)

Then, connect to the remote machine you want to login to, to the file ~/.ssh/authorized_keys add the contents of your that id_rsa.pub file.

Oh, and chmod 600 all the id_rsa* files (both locally and remote), so no other users can read them.

Then, when you do ssh remote.machine, it should ask you for the key's password, not the remote machine.

To make it nicer to use, you can use ssh-agent to hold the decrypted keys in memory - this means you don't have to type your keypair's password every single time. To launch the agent, you run


On some distros, ssh-agent is started automatically. If you run echo $SSH_AUTH_SOCK and it shows a path (probably in /tmp/) it's already setup, so you can skip the previous command.

Then to add your key, you do

ssh-add ~/.ssh/id_rsa

and enter your passphrase. It's stored until you remove it (using the ssh-add -D command, which removes all keys from the agent)

+1  A: 

@dbr in Linux/Unix, you'll probably need to chmod 600 the .ssh directory as well. ssh is very fussy about these things :-)