【发布时间】:2018-03-15 03:51:51
【问题描述】:
我在进行此设置时遇到了令人沮丧的事情。目前我的 Bitbucket 帐户拥有 a problem connecting over HTTPS,因此我正在尝试使用 SSH 连接到我的存储库,但遇到了问题。
这是我第一次使用 Jenkins,请多多包涵。我使用非常简单的 homebrew 安装了 Jenkins。
- 我让 Jenkins 安装推荐的插件,其中包括 git 和 ssh 插件,并为管理员用户创建了密码。
- 我使用here 描述的方法在我的机器上生成了一个新的 SSH 密钥,将其作为访问密钥添加到我的 Bitbucket 存储库中,并通过从终端克隆确认它可以工作。
- 我将 SSH 密钥添加到 Jenkins,它从我的
~/.ssh文件夹中获取了公钥 - 我在 Jenkins 中创建了一个新的 Freestyle 项目,并通过提供
git@bitbucket.org:myrepo.gitURL 添加了新的 git 存储库。 - 我指示它使用下拉菜单中的 SSH 密钥作为凭据。
我的努力得到了这个错误的回报:
无法连接到存储库:命令“git ls-remote -h git@bitbucket.org:myrepo.git HEAD" 返回状态 代码 128:标准输出:标准错误:权限被拒绝(公钥)。致命的: 无法从远程存储库中读取。
请确保您具有正确的访问权限并且存储库存在。
一些可能的线索
我听说 Jenkins 在您的计算机上创建了一个新用户,而 SSH 密钥可能不起作用的原因是 jenkins 用户无权访问它。我没有找到任何证据表明它创建了一个用户,甚至听说过it does not create a user,也许这是旧行为。
我已尝试切换到此 Jenkins 用户 as suggested here,但无济于事。
任何帮助将不胜感激。
编辑:我听说的另一件事(在某处)是,如果您的 SSH 密钥是在没有密码的情况下创建的,它可能会更好地工作。听起来在这种情况下会不太安全,所以我不确定是否应该尝试。
【问题讨论】:
-
您为哪个用户帐户生成了密钥,Jenkins 从站是否使用同一用户?在詹金斯的克隆网址下应该有一个下拉菜单来选择正确的用户。
-
我使用了与安装 Jenkins 相同的用户帐户。我目前使用默认管理员帐户登录 Jenkins。在 repo URL 下的凭据下拉列表中,我将自己的名字视为唯一选择。有没有办法告诉“Jenkins slave”对应的用户是什么?
-
我只是想了解您的环境。你的机器是詹金斯奴隶吗?
-
这只是一台 Mac Mini,我尝试在其上安装 Jenkins 和 Fastlane,以便在我提交 Bitbucket 时自动构建 iOS。它不是开发机器或任何东西。
-
您可以尝试将您的私钥添加到 jenkins 凭据中吗? Jenkins > Credentials > System > Global credentials > 选择你的用户,选择更新,粘贴私钥
标签: git macos jenkins ssh bitbucket