我在Mac上运行,我想每周从我的VPS设置一个crontab到rsync来抓取一些备份档案。 我使用ssh密钥(在VPS上不允许密码),通常我可以在没有任何提示的情况下(我的私钥有一个密码,但它存储在Mac钥匙串中)ssh。 但是,当cron运行脚本时,它会失败,并通过电子邮件告诉我ssh失败:
Permission denied (publickey). rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9]
正在执行的脚本:
#!/bin/sh rsync -Cavz -e "ssh -i /Users/bob/.ssh/id_rsa" bob@myvps:/backups/ ~/Documents/Backups
我究竟做错了什么?
我不认为cron可以访问你的密码,这就是为什么你不能login到你的远程服务器。 达到这个目的的最好方法是build立一个没有密码的新密钥。
使用没有密码的密钥是不太安全的,但是你可以限制它的使用。 请参阅sshd手册中的AUTHORIZED_KEYS FILE FORMAT部分。