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

Git 使用bitbucket存储库作为模块源处理ssh/https身份验证,git,ssh,bitbucket,terraform,bitbucket-pipelines,Git,Ssh,Bitbucket,Terraform,Bitbucket Pipelines,我正在尝试使用一个Terraform模块,它位于BitBucket中的专用专用模块存储库中。我在BitBucket中有一个应用程序存储库,其中包含Terraform模板,它使用模块存储库中的一个模块。当我签入对应用程序存储库的更改时,它会触发BitBucket管道 当BitBucket管道在我的应用程序存储库上运行时,其中的Terraform模板将我的模块存储库作为模板使用的模块的源。管道运行terraforminit,但失败,因为管道需要输入模块源存储库的密码。我见过有人使用git crede

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

当BitBucket管道在我的应用程序存储库上运行时,其中的Terraform模板将我的模块存储库作为模板使用的模块的源。管道运行
terraforminit
,但失败,因为管道需要输入模块源存储库的密码。我见过有人使用git credential helper来存储凭据,但这似乎是一种缓存以前输入的凭据的解决方案。在这个解决方案中不会出现这种情况,因为这是一个Docker映像,以前不会缓存我的git凭据

我也花了很多时间试图让ssh使用它。我已经在我的应用程序存储库上生成了公共/私有ssh密钥,将公钥提供给我的模块存储库,然后将模块源设置为我的ssh git路径。Terraform无法找出存储库路径,告诉我它不是有效的存储库

下载模块时出错:加载模块时出错:下载时出错'ssh://git@bitbucket.org:foo/bar.git':C:\Program Files\git\cmd\git.exe已退出,并带有128个:克隆到“.terraform\modules\f169a1ea8d4eb404”。。。 ssh:无法解析主机名bitbucket.org:foo:名称或服务未知 致命:无法从远程存储库读取

请确保您拥有正确的访问权限 并且存储库存在

使用ssh时,我尝试将源代码设置为
git::ssh://git@org:foo/bar.git
git::git@bitbucket.org:foo/bar.git
。每次我被告知这不是有效的存储库时,主机名都是未知的,无法授权。我还在Windows上的
$HOME/.ssh
路径下将
bitbucket.org
添加到我的
known_hosts
文件中。我不确定SSH密钥是否被正确使用,或者Terraform是否无法找出BitBucket存储库路径

我更喜欢通过HTTPS/缓存凭据执行SSH路由,但即使在Windows计算机上本地运行“terraform init”,也无法使其正常工作。所以我想从这里开始,我必须在Windows上做什么才能让Terraform使用一个以SSH作为模块源的BitBucket存储库

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

将环境变量GIT_SSH_COMMAND设置为SSH-v:后,再次尝试启动all进程,该命令将显示用于SSH会话的密钥。

注:
ssh://git@bitbucket.org:foo/bar.git
错误:应该是
ssh://git@org/foo/bar.git

ssh-v
不输出任何内容,该命令显示
-v
不是用法帮助中的选项。这适用于Windows还是仅适用于Linux?也很好指出我的无效URL。我的示例ssh路径是错误的;它在我的代码中使用了正确的格式。我将更新我的OP以反映it@JohnathonSullinger是的,如果
在您的
%PATH%
中,它也可以在Windows中工作。实际上,第二个是git::git@bitbucket.org:foo/bar.git,是正确的。ssh://将需要一个/。