First, obtain or setup a user on both your client and server whose name matches between the two boxes. (The passwords don’t have to match, just the names.)
On the Client (the box you will be connecting FROM):
As the user in question (root, josh, whoever) type:
ssh-keygen –t rsa
When asked the following, just hit enter to use the default:
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Again, when asked the following, just hit enter to keep the passphrase blank:
Enter passphrase (empty for no passphrase):
You will be prompted for the passphrase one more time, again just leave it blank and hit enter.
This places 'id_rsa' and 'id_rsa.pub' (private, public) keys in $HOME/.ssh
Now we need to mod the permissions on these files to make sure everything will work:
chmod 600 $HOME/.ssh/id_rsa chmod 600 $HOME/.ssh/id_rsa.pub chmod 700 $HOME/.ssh
Copy the 'id_rsa.pub' (public key) to the server using whatever method you wish.
On the Server (the box you will be connecting TO):
Take the 'id_rsa.pub' that you transferred and append it to $HOME/.ssh/authorized_keys if it exists. If the file doesn't yet exist, just copy it over.
cp id_rsa.pub $HOME/.ssh/authorized_keys
Now change the permissions like:
chmod 600 $HOME/.ssh/authorized_keys chmod 700 $HOME/.ssh
One more note than can sometimes trip you up. Make sure the .ssh directories and files are all owned by your user. That should be it. Now, from from your client box, you can run all the following types of commands and won't be asked to authenticate!
ssh serverName "ls" scp username@servername:/home/username/*.prn $HOME/ sftp username@servername