rsync 备份中使用的加固 authorized_keys
Hardening authorized_keys used in rsync backup
- 我正在尝试制作从
ServerA
到 ServerB
的 rootfs 备份。
- 连接是一种方式,使用
rsnapshot
从 ServerB
初始化。
- 我已经在
ServerA
上创建了一个 backup
帐户,并且只为 rsync
启用了无密码 sudo
我想要完成的事情:
- 更改
ServerA
上的 authorized_keys
文件,因此只能通过 ssh 使用 rsync
命令。
On 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 错误代码
我在这里错过了什么?
!!问题已解决!!
发现关于 rrsync --- /usr/share/doc/rsync/scripts/rrsync
,将它复制到任何地方。
ServerA:authorized_keys --- command="sudo /usr/local/bin/rrsync -ro /backup"
因为我在 ServerA
上保留了一份备份副本,所以我最好从它们进行 rsync 而不是在 ServerB
上使用 rsnapshot。 (这是我最初的想法,但它不起作用,因为由于 rsnapshot 创建的链接存在重复文件,我最终在 ServerA
和 ServerB
上都有 rsnapshot 运行,以将 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中设置的规则。
- 我正在尝试制作从
ServerA
到ServerB
的 rootfs 备份。 - 连接是一种方式,使用
rsnapshot
从ServerB
初始化。 - 我已经在
ServerA
上创建了一个backup
帐户,并且只为rsync
启用了无密码 sudo
我想要完成的事情:
- 更改
ServerA
上的authorized_keys
文件,因此只能通过 ssh 使用rsync
命令。
On 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
.
我在这里错过了什么?
!!问题已解决!!
发现关于 rrsync --- /usr/share/doc/rsync/scripts/rrsync
,将它复制到任何地方。
ServerA:authorized_keys --- command="sudo /usr/local/bin/rrsync -ro /backup"
因为我在 ServerA
上保留了一份备份副本,所以我最好从它们进行 rsync 而不是在 ServerB
上使用 rsnapshot。 (这是我最初的想法,但它不起作用,因为由于 rsnapshot 创建的链接存在重复文件,我最终在 ServerA
和 ServerB
上都有 rsnapshot 运行,以将 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中设置的规则。