我已经设置了没有密码的 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
选项应该输入包含私钥的文件名,而不是公钥-i
。ssh
但您可能已经给出了包含公钥的文件名,由名称给出/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>