机器 A 保存着需要备份的重要源数据。机器 B 是数据备份的位置。它们都是 Ubuntu。我想要一个自动化流程,允许机器 A 创建加密的 tarball 并将其复制到机器 B,无需人工干预,但除了将文件复制到目标目录之外不允许执行任何其他操作。
我考虑过使用 chroot 监禁帐户,但这似乎很难设置,而且过于复杂。我真的只想让机器 A 通过自动 cron 将文件复制到机器 B,但我还想阻止允许复制的机制允许任何其他操作(复制到任何其他目录、登录、非交互地执行任何其他命令等)。此外,传输必须加密(例如以某种方式使用 ssh)。
答案1
您可能需要考虑让 B 从 A 拉取 tarball,而不是让 A 将它们推送到 B。
基本上,A 上的 cron 作业会创建一个 tarball,为其指定一个唯一名称(例如,添加时间戳),将其放入 B 可以访问的目录中(通过 A 上的受限帐户),然后让 B 定期检查该目录并将其在该目录中找到的任何文件移动到自身。
这种设置还有一个额外的好处,就是不需要 A 在 B 上拥有账户,这意味着如果 A 受到攻击,攻击者将无法免费访问 B。
(编辑)要通过 SSH 进行复制,请查看“scp”命令。