SSH Passwordless Login Using SSH Keygen

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 as user david to with user jack.

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

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

[ ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/david/.ssh/id_rsa): [Press enter key]
Created directory '/home/david/.ssh'.
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Press enter key]
Your identification has been saved in /home/david/.ssh/id_rsa.
Your public key has been saved in /home/david/.ssh/
The key fingerprint is:
The key's randomart image is:
+--[ RSA 2048]----+
|        ..oooE.++|
|         o. o.o  |
|          ..   . |
|         o  . . o|
|        S .  . + |
|       . .    . o|
|      . o o    ..|
|       + +       |
|        +.       |

Step 2: Create .ssh Directory on –

Use SSH from server to connect server using jack as user and create .ssh directory under it, using following command.

[david@example ~]$ ssh jack@ mkdir -p .ssh
The authenticity of host ' (' can't be established.
RSA key fingerprint is 45:0e:28:11:d6:81:62:16:04:3f:db:38:02:la:22:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '' (ECDSA) to the list of known hosts.
jack@'s password: [Enter Your Password Here]

Step 3: Upload Generated Public Keys to –

Use SSH from server and upload new generated public key ( on server under jack‘s .ssh directory as a file name authorized_keys.

[david@example ~]$ cat .ssh/ | ssh jack@ 'cat >> .ssh/authorized_keys'
jack@'s password: [Enter Your Password Here]

Step 4: Set Permissions on –

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

[david@example ~]$ ssh jack@ "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"
jack@'s password: [Enter Your Password Here]

Step 5: Login from to Server without Password

From now onwards you can log into as jack user from server as david user without password.

[david@example ~]$ ssh jack@

Tutorial provided by TecMint