ZSH can tab complete for rsync
over SSH; the feature is probably simply not enabled in your ZSH. Here's what I see for a localhost:
TAB
% rsync -avz . localhost:
Applications/ Desktop/ Documents/ Downloads/ Library/
...
First, you will ideally need automated login setup, unless you like typing your password after every TAB. For SSH this can be done with public key authentication, among other methods. There are other questions on how to set this up.
Then, in ZSH the completion system will need to be enabled. A minimal test of this is:
% zsh -f
lion% rsync -avz . localhost:
# (remote tab completion is not available, I hit control+c)
lion% autoload -U compinit
lion% compinit
lion% rsync -avz . localhost:
Applications/ Desktop/ Documents/ Downloads/ Library/
...
lion% exit
Therefore you will need to enable the completion system by placing the commands
autoload -U compinit
compinit
into a ZSH "run command", usually ~/.zshrc
and then load a new shell with exec zsh -l
or some similar action.