on my LAN (debian server, windows client) I use rsync:// protocol with this code

cwRsync\rsync.exe -avLP --force --append-verify rsync://rsync-usb@server/rsync-usb/* usb/

I have read, that rsync in daemon mode with rsync:// protocol does not use encryption, so If I want to use rsync over internet, I want to use encryption. I like simplicity of rsync://user@server/module.

I do not want use ssh user with allowed login, because I do not want give access to my server.

I have created one user with blocked login


Is there a way how to tunnel rsync:// protocol over ssh ? for example with plink.exe (putty link) and private user key ?

2 Answers 2


I often use SSH port tunneling to create an encrypted channel. Since you're using an rsync:// URL I assume you have the rsync daemon running on TCP port 873 on the remote server. We can forward this port as follows:

ssh -N -L 873:localhost:873 rsyncssh@server

The -N option prevents the execution of a remote command, which would in your case disconnect the session since there's no valid shell. You can now sync with your remote server by connecting to it over the forwarded port on the local host, i.e., running your old command but replace @server with @localhost.

You can also add the -f option to the SSH command to move SSH to the background which might be handy if you want to leave the connection open at all times. I'd recommend logging in with a private key for convenience and security.

In case you don't have an rsync daemon running on the remote server, set one up and use the documentation in man 5 rsyncd.conf if necessary.

  • 1
    I'll just mention stunnel here for completeness' sake. I think your SSH solution is cleaner and easier to implement, but stunnel might be useful for a "permanent" connection.
    – Otheus
    May 26, 2015 at 16:17

rsync can use directly ssh,using -e

rsync -avP -e /home/share/ remote:/home/share

otherwise a tunnel works fine,another solution can be stunell

  • 1
    Does this command work without a remote shell? The OP has disabled it by setting it to /bin/false. May 26, 2015 at 16:58
  • I think no,but try
    – elbarna
    May 26, 2015 at 18:58
  • @BenjaminB. It doesn't. May 26, 2015 at 22:26
  • Try a tunnel,if even this doesn't work,use a restricted shell or a user with very limited privileges
    – elbarna
    May 26, 2015 at 23:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .