There are several things that you might be thinking of, it is hard to
know which one.
The following is over simplified, but I hope a good starting point.
The first question that you need to answer is "What permissions do I need
on the local end?". Typically if you are backing up the entire system
then you will need to be "root" on the local machine, but if it is only
your files then you can just use your normal user account.
Then you need to know what permissions you need on the remote machine. If
you need to create files that are owned by many different accounts then
you probably need to be "root" on the far end. (Some versions of Unix
allow you to change the ownership of files if you own them and are not
root, but most do not). If you only need to create files owned by
yourself then you probably don't need to be "root".
Now that you know what accounts you need, .......
"I won't allow ssh root logins". Presumably you are thinking about not
allowing interactive login shells for "root". However ssh allows much
more control, in particular in the file "~/.ssh/authorized_keys" you can
add a 'command="/usr/bin/wibble"' to a key to restrict what that key can
do. You can also specify 'from="pattern-list"' so you could set things up
so the remote machine does allow you to have a public-key private-key
pair to allow you to launch rsync as root on the remote machine but only
from your local machine, and not to launch anything other than rsync.
You might be thinking of running rsync in daemon mode on the far end. In
this way of operation the far end listens (either directly or via some
other program like inetd or xinetd) to command on a TCP port.
Others in this thread have mentioned using other tunneling techniques.
As a general comment, you need to decide what your security goals are,
and then set out to achieve them. Not allowing root logins on the remote
box is meaningless if I can use rsync to overwrite the password file and
the sshd.conf file by sending in a carefully constructed request.