通过 ssh 进行 Rsync,双方都具有 root 访问权限

Tim*_*ell 16 ubuntu debian ssh rsync root

我有一台较旧的 ubuntu 服务器和一台较新的 debian 服务器,我正在将数据从旧服务器迁移到新服务器。我想使用 rsync 来传输数据,使最终迁移比等效的 tar/scp/untar 过程更容易、更快。

例如,我想一次将一个主文件夹同步到新服务器。这需要两端的 root 访问权限,因为并非源端的所有文件都是世界可读的,目标必须以正确的权限写入 /home。我不知道如何在双方都授予 rsync 根访问权限。

我看过一些相关的问题,但没有一个完全符合我想要做的。

我已经 sudo 设置并在两台服务器上工作。

Cal*_*leb 16

实际上,您不需要像 Antoine 建议的那样允许通过 SSH 进行 root 身份验证来运行 rsync。传输和系统身份验证可以完全通过用户帐户完成,只要您可以在两端使用 sudo 运行 rsync 来读取和写入文件。

作为目标服务器上的用户,您可以像这样从源服务器获取数据:

sudo rsync -aPe ssh --rsync-path='sudo rsync' boron:/home/fred /home/
Run Code Online (Sandbox Code Playgroud)

您在两台服务器上运行的用户将需要无密码* sudo 访问 rsync 二进制文件,但您不需要在任何地方以 root 身份启用 ssh 登录。如果您使用的用户在另一端不匹配,您可以添加 user@boron: 以指定不同的远程用户。

祝你好运。

*或者您需要在超时窗口内手动输入密码。

  • 虽然这是一个老问题,但我想在这个已接受的答案中添加 *CAUTION* 字样。根据我的理解,允许无密码“sudo rsync”相当于打开root账户远程登录。这是因为这样很容易获得完全的 root 访问权限,例如因为所有系统文件都可以在没有密码的情况下下载、修改和替换。 (7认同)