I was creating a simple cron job to connect to from remote-server-1 to remote-server-2.
Testing the job with direct call or run-parts was OK
# direct call to my script /home/admin/myscript.sh # or with run-parts run-parts -v –-test /etc/cron.hourly
But when called from cron I had a : Permission denied (publickey).
I finally reproduce the problem.
So I add -vvv options to my ssh connection to get more details : still not enough clue : permission is refused.
Then I decided to compare my ssh connection from bash command line :
remote-server-1@myuser > ssh -vvv remote-server-2
What a surprise :
- it uses my personal key to connect to remote-server-2 instead of remote-server-1 key !
- my personal key is deployed on remote-server-1 and remote-server-2
So when I run the connection, it works because it uses my personal key but when ran from cron environment it uses remote-server-1 key and this one was not declared on remote-server-2.
SSH is able to use your connection key in priority to try to connect to another server...