Consider two machines A and B. We want to connect machine B from A over SSH. To do so we have to specify password every time we connect. Here, we can create a setup where SSHing can be done without the password prompt. On connecting machine B from A, ssh won’t ask for password.
Overview of Setup
- Generate public and private encryption keys on machine A.
- Authorize machine A in machine B by appending the public key of A in the file authorized_keys of machine B.
That’s it! You can now access (SSH) machine B from A without specifying the password. B has been now authorized to access A without requiring the password.
Detailed Steps
- Login to machine A.
- Generate public and private keys like following:
ssh-keygen -t dsa
It will ask for path of the keys and passphrase. Choose the default path and no password.
This will generate files id_dsa.pub and id_dsa in ~/.ssh - Browse for the above generated keys and copy the public key, that is id_dsa.pub, to the machine B.
- Login to machine B.
- Append the public key of A to the file authorized_keys:
cat id_dsa.pub >> .ssh/authorized_keys
Note: Create the directory .ssh in your home if it doesn’t exist.
You can now delete id_dsa.pub from machine B if you want to. - Make sure of the permissions of the directory .ssh and the file authorized_keys are read-write only by the targetted user. Otherwise it might not work.
chmod 700 .ssh chmod 600 .ssh/authorized_keys
- Now go back to machine A and SSH machine B. It should not ask for the password.