在圈子ci中使用go mod获取私人仓库

时间:2019-01-08 20:57:31

标签: go ssh circleci

我遵循了this,并在SSH权限中添加了密钥,并在我的圈子配置文件中添加了指纹。

我也在圈子编译步骤中将其添加到了~/.gitconfig中。

[url "ssh://git@github.com/MYORGANIZATION/"]
insteadOf = https://github.com/MYORGANIZATION/

跟随official recommendation

当我SSH进入圆圈图像时,可以看到使用此命令ssh-add -l -E md5添加的指纹。但是~/.ssh/中没有添加任何键。我希望在那里有~/.ssh/id_rsa_<fingerprint>

但是,当我尝试检索软件包时,仍然无法访问。

1 个答案:

答案 0 :(得分:1)

最简单的方法是按照添加机器用户的说明进行操作:https://circleci.com/docs/2.0/gh-bb-integration/#enable-your-project-to-check-out-additional-private-repositories

有关更复杂的解决方案,请继续阅读。

我最近尝试了同样的事情。 add_ssh_keys键应(在我的情况下也是如此)添加id_rsa_<fingerprint>文件。

我遇到的问题是该密钥是通过包含以下内容的ssh配置添加的:

Host !github.com *

我认为问题在于它使用默认的CircleCI密钥对github进行身份验证。该密钥是有效的,因此github接受它,但很可能在您的依赖项中无法访问私有存储库。

要使其正常工作,我要做的是:

# Disable ssh-agent which seemed to override `-i`
export SSH_AUTH_SOCK=none
# Tell get to ssh with the key I want to use
export GIT_SSH_COMMAND="ssh -i /root/.ssh/id_rsa_FINGERPRINT

# Run some command to pull dependencies
go test ./...