SSH is the typical manner most Linux/UNIX administrators use to remotely access and run commands against a Linux/UNIX server or desktop. Occasionally typing a username and password becomes tedious. Having to type your username and password can put a halt to automating processes.
This guide will help in automating SSH login without a password from a Linux/UNIX system to another Linux/UNIX system.
The things you will need before starting:
- Access to 2 Linux Desktops or Servers.
- Basic understanding of Linux/UNIX folder structure.
Steps:
- Log in to the first Linux Desktop/Server.
- Generate your pubic and private keys.
user1@server1:~$ ssh-keygen
[Press Enter Here]
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
[Press Enter Here]
Enter same passphrase again:
[Press Enter Here]
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
17:0c:23:02:f7:8c:c0:4a:1a:e3:99:ab:30:2b:8f:0f user1@server1
The key's randomart image is:
+--[ RSA 2048]----+
| .o.o . o |
|o..o = . + |
|++o . o o |
|o+ . |
| . S . |
|o. . |
|Eo |
|+o |
|ooo |
+-----------------+ - Copy your public key to the remote server
user1@server1:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub user2@server2
user2@server2's password:
Now try logging into the machine, with "ssh 'user2@server2'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting. - Finally we need to test our automatic remote login
user1@server1:~$ ssh user2@server2
[Congrats you can login without a password]
Last login: Tue Mar 4 20:51:33 2014 from 192.168.1.100
user2@server2:~$
If these steps don't work, you can delete the ~/.ssh directory on the remote server and try again. You can now use this password-less ssh login to either shorten your login processes or to help script cronjobs such as rsync.