通过 cron 使用 ssh 无密码访问 rsync 失败

通过 cron 使用 ssh 无密码访问 rsync 失败

我已经设置了没有密码的 ssh 密钥(Ubuntu)并将它们复制到我的远程服务器(Centos6)。我可以在我的用户名下使用 ssh 成功登录,无需密码。

当我在终端中以我的用户名(而不是 root)执行以下脚本时,它可以工作。当我以我的用户名通过 cron 执行它时,它失败并显示响应:

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

这是脚本:

#!/bin/bash
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>

任何帮助将不胜感激

答案1

选项应该输入包含私钥的文件名,而不是公钥-issh但您可能已经给出了包含公钥的文件名,由名称给出/home/<username>/.ssh/id_rsa.pub

假设私钥位于 中/home/<username>/.ssh/id_rsa,则以下操作应该有效:

rsync -rvzO  -e 'ssh -p 6135 -i /home/<username>/.ssh/id_rsa' <username>@xx.xxx.xx.xx:<filename> <filename>

相关内容