我需要通过公共互联网每天复制大型文件树,并有效地做到这一点。据我所知,如果我在接收部分使用rsyncd,那么同步会非常有效地完成,因为在文件树比较部分期间,双方(发送者和接收者)都可以在本地扫描现有的文件树。这样,我想同步到 rsyncd,这很好,但是发送将是纯文本,我需要加密它,因为我使用公共互联网。
相反,如果我像这样运行同步:rsync -a /localtree user@host:/remotetree/
那么一切都由同一个(本地)rsync 完成,它使用 ssh 登录远程系统,扫描其文件系统并进行同步。然后我在所有阶段都得到了加密,但是远程树扫描不是那么有效。
那么,看起来 rsyncd 是为了提高效率,而 rsync(通过 ssh)是为了安全?我是否可以选择安全地使用 rsyncd 而无需在主机之间设置(显式)VPN?
请建议,因为同步文件似乎被广泛使用,我想只是错过了加密部分的一些东西。
您认为 rsync over ssh(远程 shell)意味着您的本地 rsync 可以完成所有工作的假设是不正确的。
当使用类似
rsync -a /localtree user@host:/remotetree/
通过 ssh rsync 到远程系统的命令时,有两个rsync
实例在工作:本地实例(由您启动)和远程实例(由远程 shell 启动)。两个实例都通过管道通过远程外壳进行通信。此处描述了该过程。
这意味着,当
rsync
通过 ssh 连接到远程系统时,扫描远程文件由远程 rsync“服务器”(不要与 rsyncd 守护进程混淆)实例处理,因此它与本地扫描一样有效。