Supondo que você use rsync com um shell SSH remoto (e não - por exemplo - com um servidor rsync), então você pode fazer com que o rsync execute o SSH de uma maneira que nunca pedirá uma senha. Por exemplo, uma vez pode usar esta chamada:
rsync -e 'ssh -o "NumberOfPasswordPrompts 0"' source user@target:/path
Isso forçará o rsync a usar o SSH com 0 possíveis tentativas de senha - se não conseguir acessar usando algum outro método de autenticação (como chave pública ou GSSAPI), ele falhará com um erro. Note que o rsync não vai gostar de você quando isso acontecer e vai reclamar alto para STDERR e quebrar com o código de saída 255.