代码之家  ›  专栏  ›  技术社区  ›  Johnathon Sullinger

使用用作模块源的bitbucket存储库处理ssh/https身份验证

  •  1
  • Johnathon Sullinger  · 技术社区  · 6 年前

    我正在尝试使用一个Terraform模块,它位于BitBucket中的专用私有模块存储库中。我在BitBucket中有一个应用程序存储库,其中有Terraform模板,它使用模块存储库中的一个模块。当我签入对应用程序存储库的更改时,它会触发BitBucket管道。

    terraform init 这将失败,因为管道需要输入模块源存储库的密码。我见过有人使用git credential helper来存储凭据,但这似乎是一个缓存以前输入的凭据的解决方案。在这个解决方案中不会出现这种情况,因为这是一个Docker映像,以前不会缓存我的git凭据。

    下载模块时出错:加载模块时出错:下载“ssh://git@bitbucket.org:foo/bar.git”时出错:C:\ Program Files\git\cmd\git.exe已退出,其中128个:克隆到“.terraform\modules\f169a1ea8d4eb404”。。。 致命:无法从远程存储库读取。

    请确保您拥有正确的访问权限

    当使用ssh时,我尝试将源设置为 git::ssh://git@bitbucket.org:foo/bar.git git::git@bitbucket.org:foo/bar.git . 每次我被告知这不是一个有效的存储库时,主机名都是未知的,无法对其进行授权。我还添加了 bitbucket.org 给我的 known_hosts $HOME/.ssh 路径。我不确定SSH密钥是否被正确使用,或者Terraform是否无法确定BitBucket存储库的路径。

    我更喜欢使用SSH路由,而不是HTTPS/cached凭据,但是我无法让它正常工作,即使我在我的Windows机器上本地运行'terraform init'。所以我想从这里开始,我需要在Windows上做什么才能让Terraform使用一个以SSH作为模块源的BitBucket存储库?

    1 回复  |  直到 6 年前
        1
  •  0
  •   VonC    6 年前

    我不确定SSH密钥是否被正确使用,或者Terraform是否无法确定BitBucket存储库的路径

    在将环境变量GIT_SSH_COMMAND设置为SSH-v:后,再次尝试启动all进程,该命令将显示SSH会话使用的密钥。
    注: ssh://git@bitbucket.org:foo/bar.git ssh://git@bitbucket.org/foo/bar.git .