Git 在macOS view homebrew上安装后通过SSH连接到Bitbucket repo

Git 在macOS view homebrew上安装后通过SSH连接到Bitbucket repo,git,macos,jenkins,ssh,bitbucket,Git,Macos,Jenkins,Ssh,Bitbucket,我在做这件事的时候很沮丧。目前,我的Bitbucket帐户正在使用,因此我尝试使用SSH连接到我的repo,但遇到了问题 这是我第一次使用詹金斯,所以请容忍我。我用非常简单的自制软件安装了Jenkins 我让Jenkins安装推荐的插件,其中包括git和ssh插件,并为管理员用户创建了密码 我使用描述的方法在我的机器上生成了一个新的SSH密钥,将其作为访问密钥添加到我的Bitbucket repo中,并通过从终端克隆来确认其工作 我向Jenkins添加了SSH密钥,它从我的~/.SSH文件夹中获

我在做这件事的时候很沮丧。目前,我的Bitbucket帐户正在使用,因此我尝试使用SSH连接到我的repo,但遇到了问题

这是我第一次使用詹金斯,所以请容忍我。我用非常简单的自制软件安装了Jenkins

  • 我让Jenkins安装推荐的插件,其中包括git和ssh插件,并为管理员用户创建了密码
  • 我使用描述的方法在我的机器上生成了一个新的SSH密钥,将其作为访问密钥添加到我的Bitbucket repo中,并通过从终端克隆来确认其工作
  • 我向Jenkins添加了SSH密钥,它从我的
    ~/.SSH
    文件夹中获取了公钥
  • 我在Jenkins创建了一个新的Freestyle项目,并通过提供
    git@bitbucket.org:myrepo.git
    URL
  • 我指示它使用下拉列表中的SSH密钥作为凭据
  • 我的努力得到了以下错误的回报:

    无法连接到存储库:命令“git ls remote-h” git@bitbucket.org:myrepo.git HEAD“返回状态” 代码128:stdout:stderr:权限被拒绝(公钥)。致命的: 无法从远程存储库读取

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

    一些可能的线索 我听说Jenkins在您的机器上创建了一个新用户,SSH密钥可能不起作用的原因是Jenkins用户无权访问它。我没有发现任何证据表明它创造了一个用户,甚至听说过,也许这是一种古老的行为

    我试着切换到这个詹金斯用户,但没有任何效果

    任何帮助都将不胜感激


    Edit:我(在某处)听说的另一件事是,如果您的SSH密钥是在没有密码短语的情况下创建的,那么效果可能会更好。听起来在这种情况下会比较不安全,所以我不确定是否应该试试。

    好的,我刚刚知道发生了什么

    尽管我向Jenkins添加了SSH密钥,并且可以通过项目源代码管理部分的凭据下拉列表访问,但我的机器(Jenkins使用的)上的SSH代理不知道我的密钥,我需要添加它们

    解决方案:

    在安装Jenkins的机器上:

  • 打开一个终端
  • 输入:
    ssh add-l
  • 如果您没有看到列出的密钥(我的密钥是“代理没有身份”),那么您需要添加它们。输入:
    ssh add
    (默认路径通常类似于
    ~/.ssh/id\u rsa
  • 如果您有密钥的密码短语,则需要在此处输入
  • 现在回到您的Jenkins项目,添加您的repo URL,然后选择您的凭据,它应该可以工作

  • 希望这能帮助某人避免像我一样浪费时间。

    您为哪个用户帐户生成密钥,Jenkins奴隶是否使用同一个用户?在jenkins中的克隆url下应该有一个下拉列表来选择正确的用户。我使用了与安装jenkins相同的用户帐户。我目前使用默认管理员帐户登录Jenkins。在回购URL下的凭证下拉列表中,我看到我自己的名字是唯一的选择。有没有办法知道“詹金斯奴隶”对应的是什么用户?我只是想了解一下您的环境。你的机器是jenkins slave吗?它只是一个Mac Mini,我正试图在它上安装jenkins和Fastlane,以便在我提交Bitbucket时自动构建iOS。这不是一台开发机器或任何东西。你能尝试将你的私钥添加到jenkins凭据吗?Jenkins>凭据>系统>全局凭据>选择您的用户,选择更新,粘贴私钥