Além de todas as respostas anteriores, aqui está uma que se baseia em chaves SSH com restrições sobre o que pode ser feito ao fazer login com essa chave.
No servidor A
Neste, é menos importante se você criar um usuário separado ou usar um de seus nomes de usuário existentes, mas se fosse eu, eu criaria um usuário separado. Usarei o nome bkpuserde usuário para os dois servidores nos meus exemplos abaixo.
Quando conectado bkpuser, crie uma chave SSH sem uma senha.
No servidor B
Ativar PubkeyAuthenticationno sshd_config.
Crie o usuário bkpuser. Defina uma senha muito complicada ou desative o login de senha para esse usuário (exatamente como você faz isso dependerá de qual unix e distro você está executando). O ponto é que o usuário deve efetuar login apenas com uma chave SSH. Verifique se bkpuserpossui acesso de leitura a todos os diretórios e arquivos que você deseja fazer backup.
Copie a parte pública da chave criada em A para ~bkpuser/.ssh/authorized_keysB. Edite para executar automaticamente um comando na conexão. Esse comando não deve ser um ponteiro para um script de shell; em vez disso, insira o script de shell diretamente na chave. Inclua também uma limitação para que a chave possa ser usada apenas no servidor A e em nenhum outro servidor. No exemplo abaixo, estou dando ao servidor A o endereço IP 10.1.2.3e estou assumindo que os arquivos nos quais quero fazer backup estão todos em baixo /data.
from="10.1.2.3",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="cd /data;/usr/bin/tar -cf - *; /usr/bin/logger -t BACKUP -p daemon.info \"INFO: Backup-files on $HOST fetched from ${SSH_CLIENT%% *} by $USER\";" ssh-dss AA.....
No servidor A
Se você estiver usando uma das guias cron que suporta @rebootentradas, adicione uma entrada como a bkpusers crontab com o comando ssh -i ~bkpuser/.ssh/id_dsa serverB > backup.tar.gz. Se não permitir, defina-o a qualquer momento - se fossem meus dados, provavelmente o faria diariamente.