使用脚本提供的密码进行 rsync

bri*_*gge 3 ssh rsync

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

--password-file选项只是用于连接到 rsync 守护程序的选项,密码提示不会从 stdin 中读取。

Den*_*son 5

你看过使用expect吗?


Ami*_*mir 5

sshpass在您的发行版中查找该程序。拥有后,您可以执行以下操作:

rsync –e 'sshpass -f passwordfile ssh -l user' host:path
Run Code Online (Sandbox Code Playgroud)

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

rsync –e 'sshpass -d 300 ssh -l user' host:path 300<<<'password'
Run Code Online (Sandbox Code Playgroud)

您可能需要考虑更改AuthorizedKeysFile远程服务器中的选项sshd_config,如果这是一个选项,那么您可以在没有主目录的情况下在那里设置您的公钥。在这种情况下,它将类似于/home/%u/.ssh/authorized_keys,以尽量减少与系统上其他用户的潜在冲突。