Como tudo está funcionando bem na linha de comando, o erro Permission denied (publickey)
significa que a parte SSH do rsync
está usando um arquivo de identidade diferente do nome de usuário especificado.
De Comentário de Jan sobre a questão original, podemos especificar o arquivo de identidade no comando rsync
usando -e 'ssh -i /path/to/identity.file' ...
.
Usar o comando abaixo para começar com um novo ambiente no cron e especificar o caminho completo para o arquivo aparentemente resolve o problema:
env -i sh -c "rsync -lrstRO --delete --exclude 'lost+found' -e 'ssh -i /home/tom/.ssh/backups-only' /Backups/auto-daily-backups/./ [email protected]:/backups/desktop/"
Eu ainda estou realmente interessado nessa descoberta. Provavelmente tem a ver com o cron, o fato de que ele começa com variáveis de ambiente mínimas e o ssh-agent. Vou configurar o mesmo cenário em alguns dias para testá-lo e informar.