我正在使用 rsync 将本地计算机上的目录备份到远程服务器。我已为我的用户设置并启用了基于 SSH 密钥的访问权限,因此当我运行以下命令时:
rsync --update -razvP --progress ~/Projects/ ~/Documents/ [email protected]:backup/
一切都按预期进行。所以现在我想每天运行它,所以我将它放入 Bash 脚本中,通过 crontab 运行:
〜/备份1.sh
#!/usr/bin/env bash
rsync --update -razvP --progress ~/Projects/ ~/Documents/ [email protected]:backup/
$ ll ~/backup1.sh
-rwxr-xr-x 1 my-user admin 112B Nov 29 20:00 backup1.sh
$ crontab -e
30 15 * * * sh ~/backup1.sh
不幸的是,当 cron 作业运行时,它会产生以下错误:
Permission denied, please try again.
[email protected]: Permission denied (publickey,password).
我猜 crontab 以自己的用户身份运行,因此找不到我的公钥。有没有办法告诉 crontab 或 rsync 以我的用户身份运行,以便发送我的公钥并成功进行身份验证?