go get拉取自建私有Git仓库报错443连接拒绝如何解决?
问题原因
go get的执行流程会先发起HTTPS请求访问https://myserver.com/home/git/repo?go-get=1获取包的源地址元信息,你的服务器没有开放443端口的HTTPS服务,所以第一步请求直接失败,还没有走到调用Git拉取代码的环节,因此你之前配置的Git SSH替换规则没有生效。
解决步骤
- 修正GOPRIVATE配置
你当前配置的GOPRIVATE仅匹配单个仓库,建议调整为匹配整个私有域名,所有该域名下的依赖都会跳过公共代理和校验和校验:go env -w GOPRIVATE="myserver.com" - 配置GOINSECURE跳过HTTPS强制校验
Go 1.14+版本通过GOINSECURE环境变量指定私有域名可不用HTTPS传输,避免443端口连接失败的问题:go env -w GOINSECURE="myserver.com" - 完善Git SSH替换规则
补充规则覆盖HTTP场景,同时明确SSH协议前缀,避免路径匹配错误:
修改本地~/.gitconfig文件,调整为如下配置:[url "ssh://username@myserver.com/"] insteadOf = https://myserver.com/ [url "ssh://username@myserver.com/"] insteadOf = http://myserver.com/ - 可选:直接指定仓库后缀跳过探测
如果上面配置后仍有问题,可以在拉取时直接给路径加上.git后缀,Go会直接识别为Git仓库,跳过go-get=1的HTTP探测步骤:go get myserver.com/home/git/repo.git
验证
执行以下命令查看拉取过程的详细日志,确认是否正常工作:
go get -x myserver.com/home/git/repo
如果日志中调用Git时使用的是SSH协议的仓库地址,说明配置生效。
内容的提问来源于stack exchange,提问作者Alexander A.
相关产品推荐
相关产品推荐

