As we saw earlier, Rsync can be a nifty tool to transfer data across the systems in an organization while taking backup. However, its prompt for password during transfers can irritate everytime you transfer. Even having a cron-job for automatic backups using rsync will mean you having to enter password which defeats the purpose of cron-job. Here I will show you how you can use rsync over ssh to sync data across computers without password. That’s right, password less transfers with rsync.

First on your server(IP:192.168.100.101) create a ssh key using ssh-keygen,

#ssh-keygen

It will ask you for a location, hit enter for the default location. Next you’ll be prompted for a pass-phrase, hit enter & confirm it with another enter. We want the pass-phrase to be blank. You’ll get the following.

Generating public/private rsa key pair.
Enter file in which to save the key (root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Next we will need to copy the public key to the remote system(192.168.100.102). On the local system(192.168.100.101) enter the following;

#ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.100.102

You’ll be prompted for password for the remote system. Once you enter it, the key will be copied on the remote host. Now you can use rsync to connect & transfer to the remote system(192.168.100.102) without any password prompt.

#rsync -avz -e ssh /root/Desktop/test root@192.168.100.102:/root/Desktop

Now the transfer will be commenced without any prompt for password. You can transfer your public key to various other systems on your network to facilitate a password-less rsync over ssh.