There's a simpler way (however, it leaves the rsyncd daemon running on the host):
- in rsyncd.conf:
- hosts deny = 0.0.0.0/0
- hosts allow = localhost
- from the client:
- ssh -L <some_local_port>:localhost:873 remote_host
- rsync <options> rsync://localhost:<some_local_port>