Can't authenticate using SSH key when running script via launchd
Solution 1:
So this is what I ended up doing to get it working. For my use case it is sufficient, but I don''t think it's the best solution. Hopefully someone (see @Allan's comments in OP) can come up with a more universal solution.
I added the -e
option to my rsync
statement which allows you to specify the exact ssh command used.
rsync -auvzP -e "ssh -i ~/.ssh/id_rsa_scripts" '/Volumes/Norman Data/me/Documents' [email protected]:backup/
The important part in there is ~/.ssh/id_rsa_scripts
- I generated a secondary set of keys for that server, with this set having no passphrase. This is different from how I connect to that box via SSH by default and thus why it needed to be specified in the rsync
command.
That was the only way I could get it to work when running unattended (as a Global Daemon). Although it is ok under my set of circumstances, a passphrase-less key is not the best idea in many situations, which is why this is not the ** best ** solution.
Hopefully someone can figure out a way to allow launchd
to execute a script requiring SSH authentication using keys with a passphrase.