Key Based Authorization with SSH

Using remote shells is all time favourite but remembering those many passwords is a pain so here are the steps to login using SSH without putting a password :)


1. Create a public ssh key, if you haven’t one already. Look at ~/.ssh. If you see a file named then you obviously already have a public key. If not, simply create one.

ssh-keygen -t dsa should do the trick. Please note that there are other types of keys, e.g. RSA instead of DSA.

2. Make sure your .ssh dir is not publically writable

    # chmod 700 ~/.ssh

3. Get your public ssh key on the server you want to login automatically.
    #scp ~/.ssh/ [email protected]

4. Append the contents of your public key to the ~/.ssh/authorized_keys and remove it.

Important: This must be done on the server you just copied your public key to. Otherwise you wouldn’t have had to copy it on your server. Simply issue something like


    # cat >> .ssh/authorized_keys while at your home directory.


5. Instead of steps 3 and 4, you can issue something like this:
    # cat ~/.ssh/ | ssh -l remoteuser 'cat >> ~/.ssh/authorized_keys'

   6. Remove your public key from the home directory on the server.

   7. And you are in

    # ssh -l remoteuser
    # ssh [email protected]


 without getting asked for a password.