我需要一个脚本定期通过 ssh 从远程主机 rsync 文件。运行该脚本的帐户在远程主机上没有主目录,因此我无法将我的公钥存储在远程主机上。我很乐意将我的密码存储在本地主机上的文件中,但我似乎无法让 rsync 使用该密码。
该--password-file
选项仅仅是一个用于连接 rsync 守护进程的选项,并且密码提示不会从 stdin 读取。
答案1
你看过使用预计?
答案2
在你的发行版中查找该程序sshpass
。找到后,你可以执行以下操作:
rsync –e 'sshpass -f passwordfile ssh -l user' host:path
或者,把所有内容放在一个文件中:
rsync –e 'sshpass -d 300 ssh -l user' host:path 300<<<'password'
您可能想要研究更改AuthorizedKeysFile
远程服务器的选项sshd_config
(如果可以的话),这样您就可以在那里设置公钥而无需主目录。在这种情况下,它将类似于/home/%u/.ssh/authorized_keys
,以尽量减少与系统上其他用户的潜在冲突。