How to Setup Rsync without password with SSH on UNIX / Linux?
Below is the article from The Geek Stuff:
1. Test rsync over ssh (with password):
Do a rsync to make sure it asks for the password for your account on the remote server, and successfully copies the files to the remote server.
The following example will synchronize the local folder
/home/test
to the remote folder/backup/test
(on192.168.200.10
server).This should ask you for the password of your account on the remote server.
rsync -avz -e ssh /home/test/ [email protected]:/backup/test/
2. ssh-keygen generates keys.
Now setup
ssh
so that it doesn’t ask for password when you perform ssh. Usessh-keygen
on local server to generate public and private keys.$ ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again: Note: When it asks you to enter the passphrase just press enter key, and do not give any password here.
3. ssh-copy-id copies public key to remote host
Use
ssh-copy-id
, to copy the public key to the remote host.ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Note: The above will ask the password for the user account on the remote host, and copy the public key automatically to the appropriate location. If ssh-copy-id doesn’t work for you, use the method we discussed earlier to setup ssh password less login.
4. Perform rsync over ssh without password
Now, you should be able to ssh to remote host without entering the password.
ssh [email protected]
Perform the rsync again, it should not ask you to enter any password this time.
rsync -avz -e ssh /home/test/ [email protected]:/backup/test/
Genarate the public key in ServerA
$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:
The public key will be generated and stored in
~/.ssh/id_rsa.pub
Copy public key to remote host
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
Or
- Open id_rsa.pub, copy the content
- Login to ServerB using the same user in the rsync command
- In ServerB, append the contents to
~/.ssh/authorized_keys
. Create the file if not exist. Make sure the file mode is 700.