I have setup ssh keys without a passphrase (Ubuntu) and copied them to my remote server (Centos6). I can login with ssh without a password successfully under my username.

When I execute the following script in a terminal under my username (not root) it works. When I execute it through cron under my user name it fails with response:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

Here is the script:

export PATH=/home/<username>/git/kodi-playercorefactory/bash-scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
rsync -rvzO  -e 'ssh -p 6135 -i /home/<username>/.ssh/id_rsa.pub' <username>@xx.xxx.xx.xx:<filename> <filename>

Any help will be greatly appreciated

  • Does ssh without using cron work? – Elizafox Jul 28 '16 at 20:26
  • Just in case this isn't properly passphraseless (eg using ssh-agent) you can test from the command line with env -i ./yourscript.sh so that it runs in a clean environment. If that works properly then you should test under cron with ssh -vv to get more debugging output. – Stephen Harris Jul 28 '16 at 20:53

The -i option of ssh is supposed to input the file name that contains the private key, not public key. But you have presumably given the file name containing the public key, given by the name /home/<username>/.ssh/id_rsa.pub.

Assuming the private key is in /home/<username>/.ssh/id_rsa, the following should work:

rsync -rvzO  -e 'ssh -p 6135 -i /home/<username>/.ssh/id_rsa' <username>@xx.xxx.xx.xx:<filename> <filename>
  • If the script really is running as user <username> then the whole -i /home/<username>/.ssh/id_rsa bit is irrelevant anyway. – roaima Jul 28 '16 at 22:03
  • Thank you heemayl, using the private key did the trick. – user1142052 Jul 29 '16 at 0:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.