rsync: can't get rid of password prompt
I'm trying to run rsync to copy files (Centos 5.2 -> Centos 5.2) and I need run using nohup it so it can run after I disconnect my ssh session. The problem is I cannot get rsync to not prompt for a passowrd, and I cannot get nohup to play nice with the password prompt.
rsync -v -r -x --password-file=/root/password.txt /sourcedir/ [email protected]:/destdir
I've tried both setting the RSYNC_PASSWORD variable to the password and creating a file with the password and using --password-file, but in both those case I still get the prompt asking for the password.
How do I give rsync the password it needs to it will run happily?
You can use public/pricate key authentication.
Generate a pair public/private key with
ssh-keygen -t rsa
then copy dsa.pub into .ssh/authorized_keys file in your home directory in the destiny host.
The problem is that RSYNC_PASSWORD as well as --password-file only is applicable when connecting directly to a rsyncd server, not when spawning rsync using a remote shell such as ssh. Your choices are, depending on the data you are transferring, to either to setup password-less ssh keys or to start using a rsyncd daemon instead.
(Note that if you connect directly to a rsyncd then your data will be transfered unencrypted.)
Alternatively you could use screen instead of nohup. It works like this :
- type
screen
- you will be presented with a new terminal
- start you're command that will take forever, the rsync command in your case.
- disconnect from your screen terminal with
ctrl-a
, followed by d - you can exit now or do other stuff, your screen terminal will go on doing your stuff
- you can reconnect to screen, by typing
screen -r
, this alose works from another tty or ssh connection or whatever.