推荐ssh通道是因为它提供端到端加密、身份认证和连接完整性保护,避免rsync明文传输风险;基础命令为rsync -avz -e "ssh" 源 目标,支持端口指定、--delete、-n预览、--bwlimit限速等增强用法,并需提前配置ssh密钥免密登录。

直接用 rsync 加 -e ssh 选项就能走 SSH 加密通道传输,不需要额外装服务或改配置,这是最常用也最安全的方式。
为什么推荐 SSH 通道
SSH 提供端到端加密、用户身份认证和完整连接保护,避免明文传输风险。rsync 本身不自带加密,但默认就支持通过 SSH 封装传输,相当于把 rsync 命令“跑在 SSH 上”,既省事又可靠。
基础命令格式
推送到远程(本地 → 远程):
rsync -avz -e "ssh" /local/path/ user@host:/remote/path/
从远程拉取(远程 → 本地):
rsync -avz -e "ssh" user@host:/remote/path/ /local/path/
- -a:归档模式,保留权限、时间戳、软链接等元数据
- -v:显示同步过程中的文件列表
- -z:传输时自动压缩,节省带宽
- -e "ssh":显式指定用 SSH 作为传输通道(可省略,默认就是 SSH)
实用增强写法
日常使用中常加这些优化:
- 指定非默认 SSH 端口(比如 2222):
rsync -avz -e "ssh -p 2222" /src/ user@host:/dst/ - 跳过目标端多余文件(保持严格一致):
rsync -avz --delete /src/ user@host:/dst/ - 预览操作(不实际执行):
rsync -avn /src/ user@host:/dst/(加 n 即 dry-run) - 限速(防止占满带宽):
rsync -avz --bwlimit=1000 /src/ user@host:/dst/(单位 KB/s)
前提准备要点
要让 SSH 通道真正“免密、稳定、高效”,得提前做好几件事:
- 双方都已安装 rsync(
yum install rsync -y或apt install rsync) - 客户端生成 SSH 密钥对(
ssh-keygen -t rsa),并用ssh-copy-id把公钥复制到服务端对应用户下 - 确认服务端 SSH 服务正常运行(
systemctl status sshd),且允许该用户登录 - 如需同步大量小文件,可加 --compress-level=9 提高压缩率(配合 -z 使用)











