在macOS上安装后,通过SSH连接到Bitbucket仓库查看自制

时间:2017-10-03 20:52:47

标签: git macos jenkins ssh bitbucket

我有一个令人沮丧的时间来设置这个。目前我的Bitbucket帐户有a problem connecting over HTTPS,因此我尝试使用SSH连接到我的仓库,但遇到了问题。

这是我第一次使用Jenkins,所以请耐心等待。我使用 homebrew 安装了Jenkins,这非常简单。

  1. 我让Jenkins安装推荐的插件,其中包括git和ssh插件,并为admin用户创建了一个密码。
  2. 我使用here描述的方法在我的机器上生成了一个新的SSH密钥,将其添加为我的Bitbucket仓库的访问密钥,并通过终端克隆确认它有效。
  3. 我将SSH密钥添加到Jenkins,它从我的~/.ssh文件夹中获取了公钥
  4. 我在Jenkins创建了一个新的Freestyle项目,并通过提供git@bitbucket.org:myrepo.git URL添加了新的git存储库。
  5. 我指示它使用下拉列表中的SSH密钥作为凭据。
  6. 我的努力得到了回报:

      

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

         

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

    一些可能的潜在顾客

    我听说过Jenkins在你的机器上创建了一个新用户,而SSH密钥可能无法正常工作的原因是因为jenkins用户无法访问它。我没有找到任何证据表明它创建了一个用户,甚至听说过it does not create a user,也许这是旧行为。

    我尝试过切换到这个Jenkins用户as suggested here,但无济于事。

    任何帮助将不胜感激。

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

1 个答案:

答案 0 :(得分:1)

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

即使我将我的SSH密钥添加到Jenkins并且可以通过我项目的源代码管理部分中的凭据下拉列表访问它,我的机器上的ssh-agent(Jenkins使用的)也不知道我的密钥我需要添加它们。

  

解决方案:

     

在安装Jenkins的机器上:

     
      
  1. 打开终端
  2.   
  3. 输入:ssh-add -l
  4.   
  5. 如果您没有看到列出的密钥(我说“代理没有身份。”)那么您需要添加它们。输入:ssh-add <path-to-key>(默认路径通常是这样的   ~/.ssh/id_rsa
  6.   
  7. 如果您有密钥的密码,则需要在此处输入密码。
  8.   
  9. 现在回到你的Jenkins项目,添加你的repo URL,然后选择你的凭据,它应该可以工作
  10.   

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