Enabling Linux Automatic Password-less SSH Login

Automatic passwrod-less ssh login can make our life easier. To enable this, we need to copy our SSH public keys to the remote machines for automatic password-less login. We introduce two methods in this post: using ssh-copy-id command and the manual way.

Generate SSH key pair

If you do not have a SSH private/public key pair, let’s generate one first.

$ ssh-keygen -t rsa

By default on Linux, the key pair is stored in ~/.ssh (id_rsa and id_rsa.pub for private and public key).

Copy public SSH key to the remote machine

The easiest way

Let ssh-copy-id do it automatically:

$ ssh-copy-id username@remotemachine

The manual way

Copy the public SSH key to remote machine

$ scp .ssh/id_rsa.pub username@remotemachine:/tmp/

Log on the remote machine

$ ssh username@remotemachine

Append your public SSH key to ~/.ssh/authorized_keys

$ cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bak   # backing up before changing is a good habit
$ cat /dev/shm/id_rsa.pub >> ~/.ssh/authorized_keys     # append pub key to authorized keys list

Make sure the mode of ~/.ssh/authorized_keys is 755:

$ chmod 755 ~/.ssh/authorized_keys

Possible Problems

Home directory permission

Check the home directory’s permission which may cause the key-based login fail (suppose the home directory is /home/zma):

# chmod 700 /home/zma/

Update history
Add setting of authorized_keys’ mode setting.
Aug. 31, 2011. Revise writing.

Author: Zhiqiang Ma Last updated on: Sep 10, 2011 Posted on: Apr 1, 2010 Views: 865
Tags: , , , ,
Like this post? Subscribe full-text feeds from all Fclose.com blogs:
One Response to Enabling Linux Automatic Password-less SSH Login | Add Comment
Add your comments, share your thoughts

Be nice. Keep it clean. Stay on topic. No spam.