Why is this rsync + ssh cron job giving me 'Permission denied (publickey)' errors?
Since everything is working fine from the command line, the error Permission denied (publickey)
means that the SSH part of rsync
is using a different identity file than the specified username.
From Jan's comment on the original question, we can specify the identity file in the rsync
command using -e 'ssh -i /path/to/identity.file' ...
.
Using the below command to start off with a fresh environment in cron and specifying the complete path to the file apparently solves the issue:
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/"
I'm still really interested in this finding. It probably has to do with cron, the fact that it starts with minimal environment variables, and the ssh-agent. I'll be setting up the same scenario ina a couple of days to test it out and report back.