企业代理下Sourcetree可识别GitHub账号仓库却无法克隆问题咨询
企业代理环境下Sourcetree克隆GitHub仓库失败排查方案
核心原因
Sourcetree能正常加载账号下仓库列表,是因为账号信息拉取走HTTPS接口、能正常读取系统代理配置;但克隆操作默认走SSH协议直连GitHub 22端口,企业网络环境下该端口通常被防火墙拦截,且SSH流量默认不会走系统HTTP代理,最终触发连接失败、仓库无效报错。
常见配置遗漏点
- 仅配置了Sourcetree全局HTTP代理,未给SSH协议配置代理路由,SSH流量直连被拦截
- Sourcetree界面配置的代理未同步给内置/系统调用的Git客户端,Git进程实际未走代理
- 克隆时自动填充的仓库地址协议与代理配置不匹配,账号校验走HTTPS、克隆切SSH后网络不通
- 企业代理启用SSL中间人替换时,Git未导入企业根证书,触发HTTPS握手失败
分步修复方案
方案1:保留SSH克隆方式,配置SSH流量走企业代理
- 打开Sourcetree
工具 > 选项 > 一般页面,确认当前使用的SSH客户端是OpenSSH还是PuTTY/Plink。 - 若使用OpenSSH客户端:
- 打开本地SSH配置文件,Windows路径为
C:\Users\你的系统用户名\.ssh\config,Mac路径为~/.ssh/config,文件不存在则手动新建。 - 在配置文件中添加如下规则,替换对应占位符为你的实际配置:
Host github.com HostName github.com User git Port 22 IdentityFile 你导入Sourcetree的私钥本地绝对路径 # HTTP代理替换为你的企业代理地址、端口,使用socks5代理则将http替换为socks5 ProxyCommand connect -H 企业代理地址:代理端口 %h %p - Windows环境如果执行时提示找不到connect命令,可将Git for Windows安装目录下的
mingw64/bin路径加入系统环境变量,该目录自带connect.exe工具。
- 打开本地SSH配置文件,Windows路径为
- 若使用PuTTY/Plink客户端:
打开Plink配置面板,添加github.com连接规则,指定上游代理为企业代理地址与端口,保存会话配置即可。 - 配置完成后先在本地终端执行
ssh -T git@github.com,返回Hi 你的GitHub用户名! You've successfully authenticated提示后,再回到Sourcetree发起克隆。
方案2:改用HTTPS协议克隆,适配系统代理
- 发起克隆时,将自动填充的SSH格式地址
git@github.com:用户名/仓库名.git替换为HTTPS格式地址https://github.com/用户名/仓库名.git。 - 打开终端执行如下命令,给Git配置全局代理,替换占位符为实际企业代理信息:
git config --global http.proxy http://企业代理地址:端口 git config --global https.proxy http://企业代理地址:端口 - 若企业代理存在SSL证书拦截,额外执行命令将企业根证书加入Git信任列表:
git config --global http.sslCAInfo 企业根证书本地存储绝对路径 - 克隆弹出身份验证窗口时,使用GitHub个人访问令牌(PAT)作为密码填入即可,不要直接使用GitHub账号登录密码。
验证方式
配置完成后先点击克隆窗口的「测试连接」按钮,提示连接成功后再执行克隆操作。如果仍报错,打开Sourcetree 工具 > 显示操作日志,根据日志中的具体报错(端口超时/证书校验失败/权限拒绝)对应调整配置即可。
内容的提问来源于stack exchange,提问作者lte__
相关产品推荐
相关产品推荐

