rsync脚本提供的密码

我需要通过ssh定期从远程主机获取脚本rsync文件。 运行该脚本的帐户在远程主机上没有主目录,所以我无法将我的公钥存储在远程主机上。 我很高兴将我的密码存储在本地主机上的文件中,但似乎无法使rsync使用密码。

--password-file选项只是连接到rsync守护进程的一个选项,密码提示不会从stdin读取。

你用期望看了吗?

在您的发行sshpass中查找sshpass程序。 一旦你有了它,你可以做:

 rsync –e 'sshpass -f passwordfile ssh -l user' host:path 

或者把所有内容放在一个文件中:

 rsync –e 'sshpass -d 300 ssh -l user' host:path 300<<<'password' 

您可能需要考虑更改远程服务器的sshd_configAuthorizedKeysFile选项,如果这是一个选项,那么您可以在没有主目录的情况下设置您的公钥。 在这种情况下,它会像/home/%u/.ssh/authorized_keys ,以最大限度地减less与系统上的其他用户的潜在冲突。