SSH (Secure SHELL) is an open source and most trusted network protocol that is used to login into remote servers for execution of commands and programs. It is also used to transfer files from one computer to another computer over the network using secure copy (SCP) Protocol.

In this article we will show you how to setup password-less login on RHEL/CentOS 7.x/6.x/5.x and Fedora using ssh keys to connect to remote Linux servers without entering password. Using Password-less login with SSH keys will increase the trust between two Linux servers for easy file synchronization or transfer.

My Setup Environment
SSH Client : 192.168.0.12 ( Fedora 21 )
SSH Remote Host : 192.168.0.11 ( CentOS 7 )

If you are dealing with number of Linux remote servers, then SSH Password-less login is one of the best way to automate tasks such as automatic backups with scripts, synchronization files using scp and remote command execution.

In this example we will setup SSH password-less automatic login from server 192.168.0.12 as user root to 192.168.0.11 with user roota.

Step 1: Create Authentication SSH-Kegen Keys on – (192.168.0.12)

First login into server 192.168.0.12 with user roott and generate a pair of public keys using following command.

[root@pankajgupta.xyz ~]$ ssh-keygen -t rsa 

Step 2: Create .ssh Directory on – 192.168.0.11

Use SSH from server 192.168.0.12 to connect server 192.168.0.11 using roota as user and create .sshdirectory under it, using following command.

[root@pankajgupta.xyz ~]$ ssh root@192.168.0.11 mkdir -p .ssh

Step 3: Upload Generated Public Keys to – 192.168.0.11

Use SSH from server 192.168.0.12 and upload new generated public key (id_rsa.pub) on server 192.168.0.11under roota‘s .ssh directory as a file name authorized_keys.

[root@pankajgupta.xyz ~]$ cat .ssh/id_rsa.pub | ssh root@192.168.0.11 'cat >> .ssh/authorized_keys' 

Step 4: Set Permissions on – 192.168.0.11

Due to different SSH versions on servers, we need to set permissions on .ssh directory and authorized_keys file.

[root@pankajgupta.xyz ~]$ ssh root@192.168.0.11 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys" 

Step 5: Login from 192.168.0.12 to 192.168.0.11 Server without Password

From now onwards you can log into 192.168.0.11 as sheena user from server 192.168.0.12 as tecmint user without password.

[root@pankajgupta.xyz ~]$ ssh root@192.168.0.11
(Visited 26 times, 1 visits today)