local> ssh-keygen -t rsa -f .ssh/id_rsa
-t is the encryption type
-f tells where to store the public/private key pairs. In this case, the .ssh directory on home is being used
A password will be asked; leave this part blank, just pressing <enter>
Now, go the .ssh directory, and you will find two new files: id_dsa and id_dsa.pub. The last one is the public part. Now, copy the public key to the server machine
local> cd .ssh
local> scp id_rsa.pub user@remote:~/.ssh/id_rsa.pub
Of course, this time you will need to enter the password.
Now, login into the server machine and go to the .ssh directory on the server side
local> ssh user@remote
remote> cd .ssh
Now, add the client's public key to the know public keys on the server
remote> cat id_rsa.pub >> authorized_keys
remote> chmod 640 authorized_keys
remote> rm id_rsa.pub
remote> exit
Actually in my case I had to chmod 644 for authorized_keys otherwise I was getting a password prompt still
SSHD is smarter than we think. The main criteria it seems to have is that authorized_keys must not be writable by anyone but the owner of the authorized_keys file, obviously to prevent other users from adding their own public keys and gaining access to another account :)
ssh, login, passwordssh, passwordlocal, keygen, rsa, id_rsa, encryption, pairs, directory, password, pressing, id_dsa, pub, server, scp, user, authorized_keys, chmod, rm, exitactually, prompt, sshd, criteria, writable, users, adding, gaining,