You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go拉取Bitbucket私有仓库时SSH密钥无法使用的问题求助

解决方案

1. 配置GOPRIVATE环境变量

Go默认会通过公共代理(proxy.golang.org)拉取模块,但私有Bitbucket仓库无法通过公共代理访问,必须让Go直接走Git拉取:

go env -w GOPRIVATE=bitbucket.<org>.com

替换<org>为你的实际组织名,这条命令会永久修改Go的环境配置。

2. 确保Git的insteadOf配置全局生效

你已经在~/.gitconfig.user里配置了insteadOf,但需要确认Git能加载这个配置:

  • 检查配置是否被读取:
    git config --get url."ssh://git@bitbucket.<org>.com/".insteadOf
    
  • 如果没有输出,需要在~/.gitconfig中添加包含规则,让Git加载你的用户配置文件:
    [include]
        path = ~/.gitconfig.user
    

或者直接将insteadOf配置写入~/.gitconfig文件。

3. 确保SSH私钥被Git进程正确使用

Go调用Git时可能没有自动加载你的私钥,可通过以下方式解决:

  • 临时验证:运行go mod tidy时指定私钥路径:
    GIT_SSH_COMMAND="ssh -i ~/.ssh/your_private_key" go mod tidy
    
    替换your_private_key为你的实际私钥文件名(比如id_rsa)。
  • 永久配置:在~/.ssh/config中添加针对Bitbucket的Host规则,让Git默认使用指定私钥:
    Host bitbucket.<org>.com
        IdentityFile ~/.ssh/your_private_key
        User git
    

4. 清理Go模块缓存

如果之前拉取失败产生了缓存,先清理缓存再重试:

go clean -modcache
go mod tidy

内容的提问来源于stack exchange,提问作者klaypigeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:52:40