If you want to connect one Linux host to other Linux host through SSH with password-less connection then you need to perform below steps.
Lets suppose you need password-less login from host "server01" / user "redhat" to host "server02" / user "centos".
1. First login in on "server01"as user "redhat" and generate a pair of authentication keys.
[redhat@server01]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/redhat/.ssh/id_rsa):
Created directory '/home/redhat/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/redhat/.ssh/id_rsa.
Your public key has been saved in /home/redhat/.ssh/id_rsa.pub.
The key fingerprint is:
1e:4f:05:79:3a:9f:96:7c:2b:ad:e9:58:37:sc:37:e4 redhat@server01
Note: Do not enter a passphrase.
2. Now you use ssh to create a directory ~/.ssh as user "centos" on server02.
Note: If directory already exist, you do not create it again.
[redhat@server01]# ssh centos@server02 mkdir -p .ssh
centos@server02's password:
Finally append redhat's new public key to centos@server02:.ssh/authorized_keys and enter centos's password one last time:
3. Now copy the rsa key to server 02 ssh authorized_keys file
[redhat@server01]# cat .ssh/id_rsa.pub | ssh centos@server02 'cat >> .ssh/authorized_keys'
centos@server02's password:
Now you can log into server02 as "centos" from server01 as "redhat"a without password.
4. Now you can test the password less connection.
[redhat@server01]# ssh centos@server02
You are successfully login on the server02 without any password.
Note: In case of any permission issue you need to set "700" permission on .ssh folder on server02.
Lets suppose you need password-less login from host "server01" / user "redhat" to host "server02" / user "centos".
1. First login in on "server01"as user "redhat" and generate a pair of authentication keys.
[redhat@server01]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/redhat/.ssh/id_rsa):
Created directory '/home/redhat/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/redhat/.ssh/id_rsa.
Your public key has been saved in /home/redhat/.ssh/id_rsa.pub.
The key fingerprint is:
1e:4f:05:79:3a:9f:96:7c:2b:ad:e9:58:37:sc:37:e4 redhat@server01
Note: Do not enter a passphrase.
2. Now you use ssh to create a directory ~/.ssh as user "centos" on server02.
Note: If directory already exist, you do not create it again.
[redhat@server01]# ssh centos@server02 mkdir -p .ssh
centos@server02's password:
Finally append redhat's new public key to centos@server02:.ssh/authorized_keys and enter centos's password one last time:
3. Now copy the rsa key to server 02 ssh authorized_keys file
[redhat@server01]# cat .ssh/id_rsa.pub | ssh centos@server02 'cat >> .ssh/authorized_keys'
centos@server02's password:
Now you can log into server02 as "centos" from server01 as "redhat"a without password.
4. Now you can test the password less connection.
[redhat@server01]# ssh centos@server02
You are successfully login on the server02 without any password.
Note: In case of any permission issue you need to set "700" permission on .ssh folder on server02.