两端均为Windows系统时如何使用rsync?连接报错求助
解决Windows间rsync无法找到远端程序的问题
直接解决方案:指定远端rsync绝对路径
在rsync命令中通过--rsync-path参数明确指定远端Windows上rsync程序的绝对路径,比如你的rsync安装在Git的usr/bin目录下,命令如下:
rsync file user@host: --rsync-path="C:/Program Files/Git/usr/bin/rsync.exe"
问题原因分析
当从git-bash发起rsync连接到Windows远端时,远端的SSH会话默认使用Windows原生的CMD或PowerShell环境,而rsync通常安装在git-bash的专属目录(比如C:\Program Files\Git\usr\bin),这个路径并未被加入CMD的系统PATH中,导致SSH执行远端rsync命令时找不到可执行程序。
其他持久化解决方案
1. 将rsync路径加入远端系统PATH
- 打开远端Windows的「系统属性」→「高级」→「环境变量」,在「系统变量」的
Path中添加rsync所在目录(比如C:\Program Files\Git\usr\bin)。 - 重启远端的SSH服务(在PowerShell中执行
Restart-Service sshd),之后SSH登录后CMD就能识别rsync命令。
2. 修改远端SSH默认Shell为git-bash
- 编辑远端Windows的SSH配置文件(路径通常为
C:\ProgramData\ssh\sshd_config),找到Shell配置项,设置为git-bash的启动路径:Shell "C:\Program Files\Git\git-bash.exe" -l - 重启SSH服务,此后SSH登录远端会直接进入git-bash环境,自然能找到rsync程序。
验证方法
先通过SSH连接到远端Windows,执行rsync --version,如果能正常输出版本信息,说明环境配置正确,再尝试rsync同步即可。
内容的提问来源于stack exchange,提问作者user3108468
相关产品推荐
相关产品推荐

