4

microsoft/aspnetcoredocker 映像开始,我能够安装 Chocolatey,然后使用 Chocolatey 安装一些其他软件:

  • 打开SSH
  • 混帐

现在我想从我们的 Bitbucket 服务器克隆一个 repo:

  • 我将 Bitbucket 服务器添加到known_hosts文件中(甚至从容器 ssh 到服务器以仔细检查)
  • 我添加了我的 Bitbucket ssh 密钥,该密钥已在我的机器上成功使用,并在 Ubuntu 容器中成功使用
  • config我在我的用户目录中添加了一个文件.ssh来告诉 git 使用我的 ssh 密钥

我希望能够使用git clone ssh://git@<host>/<path to repo>,但是此命令总是失败并出现以下错误:

致命:无法从远程存储库中读取。

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

我使用以下命令使它在 Ubuntu 容器中工作: ssh-agent sh -c 'ssh-add /home/bamboo/.ssh/id_rsa; git clone ssh://git@<host>/<path to repo>'但是这个命令似乎对 Windows 容器没有任何作用。我从来没有从 ssh-agent 得到任何反馈,所以我不确定 Open-SSH 是否正常工作,或者 Windows 容器中是否存在已知的 Open-SSH 问题?我确实收到反馈ssh-add说我的密钥已成功添加,但我仍然无法克隆我的 git 存储库。

有没有人能够在 Windows 容器中成功地做到这一点?它适用于我的 Windows 机器,但我没有使用 Open-SSH,我使用的是 Git Bash 工具,这些工具在 Windows 容器中不起作用。这一切都非常令人困惑,因为有关此主题的所有信息都与 Ubuntu 容器有关,并且解决方案都涉及我在 Windows 容器中没有的 Unix 命令。

我注意到的另一件奇怪的事情是,使用 HTTP 进行克隆也不起作用,而是出现以下错误:

错误:无法执行提示脚本(退出代码 66) 致命:无法读取 ' http://(user)@(host) ' 的密码:没有错误

4

1 回答 1

2

我从 Git for Windows 的人那里得到了一点帮助,他们建议我在ssh命令中使用详细标志,即ssh -vvvvv <host>. 这表明我在用户.ssh目录中的配置文件有一些额外的权限,由错误消息指示:

debug3:权限错误。尝试删除用户的权限:文件 C:\Users\ContainerAdministrator/.ssh/config 上的 S-1-5-11

使用该icacls实用程序,我能够删除那些允许使用配置文件的权限。

于 2017-12-21T15:51:00.643 回答