I need to execute rsync
, without it prompting me for password.
I've seen in rsync
manpage that it doesn't allow specifying the password as command line argument.
But I noticed that it allows specifying the password via the variable RSYNC_PASSWORD
.
So I've tried exporting the variable, but rsync
keeps asking me for password.
export RSYNC_PASSWORD="abcdef"
rsync root@1.2.3.4:/abc /def
What am I doing wrong?
Please consider:
- I understand that this is a bad idea from security aspect
- I must use only
rsync
, can't use other software - I can't use key-based authentication
- I've already read many SE question, e.g.:
how-to-pass-password-for-rsync-ssh-command @ stackoverflow.com
rsync-cron-job-with-a-password @ superuser.com
how-to-setup-rsync-without-password-with-ssh-on-unix-linux @ superuser.com
In other words, I need to have the RSYNC_PASSWORD
approach working! 🙂
Best Answer
This password environment variable appears only to be used when using the rsync protocol:
For this to work, you need to run rsync as a daemon as well (
--daemon
option), which is often done usinginetd.conf
.When using this protocol,
abc
should correspond to a target defined in/etc/rsyncd.conf
. The user name should be present in aauth users
line for this target, and a password file should be specified with thesecrets file
option.It is this secrets file that contains mappings between user names and passwords in the following format:
And it is this password that you can specify using the RSYNC_PASSWORD environment variable.