【问题标题】:Hardening authorized_keys used in rsync backup强化 rsync 备份中使用的 authorized_keys
【发布时间】:2021-09-20 11:23:09
【问题描述】:
  • 我正在尝试从 ServerA 到 ServerB 进行 rootfs 备份。
  • 连接是一种方式,使用rsnapshot从ServerB初始化。
  • 我在ServerA 上创建了一个backup 帐户,并且仅为rsync 启用了无密码sudo

我想要完成的事情:

  • 更改ServerA 上的authorized_keys 文件,因此只能通过ssh 使用rsync 命令。

 

ServerB - /etc/rsnapshot.conf 设置为使用以下参数运行 rsync:

  • rsync_long_args --rsync-path="sudo rsync" --delete --numeric-ids --relative --delete-excluded

 

我在ServerA 上尝试过以下操作:

  • from="ServerB",command="sudo rsync *" ssh-ed25519 SSH-KEY

但rsnapshot 不断崩溃并为rsync 提供IO 错误代码。

我在这里错过了什么?

【问题讨论】:

  • 请在下面添加您的解决方案作为答案并接受它(当 48 小时延迟期结束时)。您应该不编辑您的问题以包含它。

标签: ssh backup rsync authorized-keys rsnapshot


【解决方案1】:

!!问题解决了!!

发现 rrsync --- /usr/share/doc/rsync/scripts/rrsync,复制到任何地方。

  • ServerA:authorized_keys --- command="sudo /usr/local/bin/rrsync -ro /backup"

由于我在 ServerA 上保留了备份的副本,我不妨从它们中 rsync,而不是在 ServerB 上使用 rsnapshot。 (这是我最初的想法,但它不起作用,因为由于 rsnapshot 创建的链接存在重复文件,我最终让 rsnapshot 在 ServerA 和 ServerB 上运行,以将备份从 ServerA 保存到ServerA 上的 localDir 并且还从 ServerA 到 ServerB 进行远程快照。)

  • 还更改了ServerA 上的sudoers 文件:
Defaults!/usr/local/bin/rrsync env_keep += "SSH_ORIGINAL_COMMAND"
backup ALL = (root) NOPASSWD: /usr/local/bin/rrsync
  • rsync -ax --delete --numeric-ids --relative ServerA:/ /ServerB-backup/

现在按预期工作。

请注意,上述命令中ServerA 上的路径是相对于authorized_keys 中设置的规则而言的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多