go - 在 circle ci 中使用 go mod 获取私有(private) repo

标签 go ssh circleci

我关注了this并在 SSH 权限中添加 key 以及我的圈子配置文件中的指纹。

我也将此添加到我的 ~/.gitconfig作为我的圈子编译步骤的一部分。

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

official recommendation 之后

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

但是,当我尝试取回包裹时,访问仍然被拒绝。

最佳答案

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

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

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

我遇到的问题是 key 添加了一个包含以下内容的 ssh 配置:

Host !github.com *

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

为了让它工作,我必须做的是:

# 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 ./...

关于go - 在 circle ci 中使用 go mod 获取私有(private) repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099579/

相关文章:

go - 将嵌套结构编码为 JSON

go - 有没有办法从golang中的 map 中删除第一个元素?

ruby-on-rails - 运行parallel_test时如何合并CircleCI内的多个simplecov目录?

npm - 在 cypress js 上运行测试之前提供 SPA

go - 如何在 Go 中创建 HTTP session

go - 发送 SIGTSTP 暂停整个程序

linux - 通过 SSH 的 rsync 仅保留 www-data 拥有的文件的所有权

ssh - Ansible:权限被拒绝

ssh - TeamCity SSH-Exec Build步骤,使用参数中的密码

docker - 在circleCI上运行docker-container测试