通过SSH使用Unison / rsync来同步需要完整文件系统访问的站点,但是禁用了rootlogin

假设两个站点AB在两端都有文件服务器。 /storage的内容应该在站点之间同步,保留所有权和权限。 没有包含组/storage所有文件的所有组。 如果运行Unison或rsync pid = 0,则执行同步操作是微不足道的。 但是,SSH将被用作传输,显而易见的原因是SSH根login已被禁用。

我怎样才能保持A和B与在这种情况下保存的所有权限同步。 我能想到的两种方法:

  • 运行允许rootlogin的辅助SSH,可能只能通过A和B之间的VPN进行连接。
  • 添加一个sshdconfiguration强制执行的特殊同步用户
    • SUID包装Unison或rsync( 危险得到正确 )。
    • sudo包装到Unison或rsync

给出的问题的答案远程使用root over ssh作为一致build议通过SSH启用无密码的pubkey rootlogin – 我不太喜欢那个解决scheme。

任何其他的想法?

通过SSH的公共密钥根login可能是你最好的select。 你可以进一步限制这个访问单个主机:

 AllowUsers [email protected] 

甚至可以使用Match指令为给定的东西(地址,用户等)获取唯一的configuration:

 Match Address 192.0.2.123 PasswordAuthentication no RSAAuthentication yes PubkeyAuthentication yes PermitRootLogin yes