ssh & rsync equivalence?

Wayne Davison wayned at
Sun Mar 29 23:52:53 GMT 2009

On Sun, Mar 29, 2009 at 05:15:58PM +1300, Morgan Read wrote:
> ssh [...] sudo rsync [...] -e 'ssh -i /home/rsync/.ssh/id_dsa' [...]

Those quotes won't survive the trip through that many programs, so
you're undoubtedly ending up with rsync seeing just the "-e ssh" option,
and the -i and beyond are taken as options/args to rsync itself.

Your best bet is to put ssh config items into your /root/.ssh/config
file.  For instance:

    User root
    IdentityFile /home/rsync/.ssh/id_dsa

That sets those settings as the default when accessing that IP.

Or give it a name and use that name instead of a hostname or IP when
telling rsync what host to contact.  For instance, in the local host's
.ssh/config file:

Host r40
    User rsync

Then on the remote host:

Host r100
    User root
    IdentityFile /home/rsync/.ssh/id_dsa

Then run this (trailing slash added to avoid /path/etc/etc):

ssh -t r40 sudo rsync -avzAXHn --delete-after /etc/ r100:/path/etc

Your other option is to create a script that executes ssh with the
option(s) you want to use and run that script via rsync's -e option.


More information about the rsync mailing list