配置Eclipse EGit通过SSH推送至Windows共享仓库遇问题求助
解决方法及配置建议
一、修复git-upload-pack找不到的问题
这个错误的核心是SSH登录到Windows服务器后,系统环境变量未包含Git的执行文件路径,按以下步骤处理:
配置Windows服务器的Git环境变量
- 登录Windows 2012R2服务器,打开「系统属性」→「高级系统设置」→「环境变量」
- 在「系统变量」的
PATH中,添加Git的bin和cmd目录(默认路径为C:\Program Files\Git\bin和C:\Program Files\Git\cmd) - 重启OpenSSH服务(在服务管理器中找到
OpenSSH SSH Server,右键重启),确保环境变量生效
验证SSH连接下的Git可用性
在本地终端(Git Bash或CMD)执行以下命令,测试服务器端Git命令是否可正常调用:ssh domain\user@server git-upload-pack --version如果返回Git版本信息,说明环境变量配置成功;如果仍报错,可在服务器的OpenSSH配置文件(
C:\ProgramData\ssh\sshd_config)中添加以下内容,强制指定Git路径:SetEnv PATH=C:\Program Files\Git\bin;C:\Program Files\Git\cmd;%PATH%添加后重启OpenSSH服务。
二、修正远程仓库URI配置
你的URI存在路径格式问题,Windows服务器的SSH路径需要使用盘符的Unix风格写法,且域用户的URI格式需要转义反斜杠:
- 原URI:
ssh://domain\user@server:22/share/git/repositories - 修正后URI(假设共享目录对应服务器本地路径为
C:\share\git\repositories):
说明:ssh://domain%5Cuser@server:22/c/share/git/repositories%5C是URI中反斜杠\的转义字符/c/对应Windows的C盘,其他盘符以此类推- 必须使用服务器本地的绝对路径,而非共享目录的相对路径
三、后续SSH密钥认证配置建议
- 在本地终端执行
ssh-keygen生成密钥对(一路回车使用默认配置即可) - 将本地生成的公钥文件(默认路径
C:\Users\你的用户名\.ssh\id_rsa.pub)内容复制到服务器上目标用户的C:\Users\user\.ssh\authorized_keys文件中 - 调整服务器上
authorized_keys文件的权限:右键文件→「属性」→「安全」,删除所有继承权限,仅保留当前用户的「读取」权限 - 在Eclipse的EGIT远程仓库配置中,切换认证方式为「SSH密钥」,指定本地私钥文件路径即可
内容的提问来源于stack exchange,提问作者mckdev
相关产品推荐
相关产品推荐

