情况是我们的客户想要从我们的服务器下载最新的备份(他们不希望我们通过rdesktop等设置它(叹气))。 客户端运行的是windows,服务器是linux。
我不想写一篇冗长而复杂的指南来设置pub / pri key auth,因为他们无疑会浪费我们所有的时间和我们的时间。 我打算让他们安装cwRsync,它几乎是windows的rsync。
通常情况下,我会使用公钥/私钥设置来安全地进行设置,但这并不是一个太大的问题。
如何在rsync命令行上为ssh指定一个密码? 我习惯于:rsync -avz someone @ somehost:/ blah。
干杯,约翰
如何在rsync命令行上为ssh指定一个密码?
简短的答案是你不能。 SSH旨在防止您这样做。 cwRsync是一个非常简洁的cygwin安装,只有ssh / rsync。 您可能使用的工具(如sshpass或expect)将不会出现。
鉴于上述限制,我真的怀疑你会保存任何时间来让他们使用密码。
这通常是一个坏主意,但是如果你和他们之间有一个安全的通信方法,你可以考虑为它们生成密钥对,然后把私钥传给它们。 看起来好像不是那么糟糕,那么让他们把密码存储在某个脚本/文本文件中。
没有rsync守护进程就无法做到这一点。 相信我,在我去关键解决scheme之前,我尝试了许多次(这远远更容易和更安全)。 所以,虽然有很多选项显示你可以做这样的事情:
rsync -avz -e ssh rsynctest/ username@***.***.***.***:/home/directory/rsynctest --password-file=/home/username/rpass
不要相信他们。 不要浪费你的时间。 它不会仅仅因为你安装了rsync和ssh而工作。 直到你理解如何在没有ssh的情况下进行传输(并且浪费了我的时间,直到我证实这并不容易),并且运行它的rsync守护进程将无法工作。 如果你仍然想尝试(如果你还没有遵循Zoredache的好build议),这里有两个很好的读取。
http://everythinglinux.org/rsync/ (让我们像1999年的聚会一样 – 严肃地说,就是这样写的)
http://finmath.uchicago.edu/~wilder/Security/rsync/
几年前,我放弃了做这项工作的努力,用ssh的钥匙去了,从不回头。
你可以像这样使用sshpass:
sshpass -p 'YourPasswordHere' rsync -av --delete -r -L -k -h [email protected]:/var/www/images /home/swayxp/test-sync/