首页/数据/备份与容灾速查/rsync over SSH 远程备份

rsync over SSH 远程备份

通过 SSH 通道把文件同步到备份服务器或云端主机,不需要额外开放服务端口;配合密钥认证可在脚本中无人值守运行。

备份与容灾速查数据更新于 2026-10-13

rsync over SSH 是什么

把 rsync 的传输通道换成 SSH:只要目标主机开了 22 端口,就能把文件同步过去,不需要额外开放 rsync 守护进程端口或配置模块。配合密钥认证可以在脚本里无人值守运行,是跨主机、跨机房备份最常见的一种组合。

基本信息

传输通道SSH,默认作为远程 shell 使用
认证方式建议使用专用密钥,并限制来源与允许命令
优势不额外开端口、加密与身份校验复用系统 sshd
代价加密与握手有开销,海量小文件时更明显

免密配置与传输

免密配置与传输
ssh-keygen -t ed25519 -f ~/.ssh/backup_key -N ""          # 生成专用密钥
ssh-copy-id -i ~/.ssh/backup_key.pub backup@10.0.0.5      # 分发公钥
rsync -av -e "ssh -i ~/.ssh/backup_key" /data/ backup@10.0.0.5:/backup/data/
# 无人值守脚本加上 BatchMode 避免交互提问卡住任务
rsync -av -e "ssh -i ~/.ssh/backup_key -o BatchMode=yes" /data/ backup@10.0.0.5:/backup/data/

加固要点

要点做法
专用账号为备份单独建账号,不与其他运维用途共用
限制来源在 authorized_keys 中限定来源地址
限制命令用 command 前缀限定只允许接收 rsync 请求
禁用转发关闭端口与代理转发,缩小密钥泄露后的影响面

典型使用场景

  • 推送到备份服务器:源端主动推送,备份端只需开放 22 端口
  • 从异地拉取:备份端主动拉取数据,生产侧不需要向外开权限
  • 跨机房同步:经跳板机做端口转发后再同步,链路全程加密
  • 云主机与本地互联:不额外暴露服务端口,复用已有的 SSH 管理通道
  • 多主机汇聚:各业务机用各自的密钥推送到统一备份池,按主机名分目录
备份密钥不设口令又无来源限制时,私钥泄露等于备份服务器失守;专用账号应限定来源地址与允许执行的命令,并定期轮换密钥。
首次连接需要确认主机指纹,无人值守任务会因此挂起;应事先写入 known_hosts 或配置好严格校验策略,而不是在脚本里简单关闭校验。

易错点

  • 备份密钥不设口令又无来源限制:私钥泄露等于备份服务器失守
  • 脚本未禁用交互(BatchMode=yes):首次主机确认或提问会让无人值守任务挂起
  • 用 root 账号做备份传输,一旦被利用影响面最大,应改用专用低权限账号
  • 备份账号与人工运维共用密钥,人员离职后密钥回收范围难以界定

数据来源与参考

  • rsync 手册(-e/--rsh 选项)
  • OpenSSH 手册(ssh-keygen、authorized_keys)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌