Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Jenkins签出多个私人Github回购_Github_Jenkins - Fatal编程技术网

如何使用Jenkins签出多个私人Github回购

如何使用Jenkins签出多个私人Github回购,github,jenkins,Github,Jenkins,我对Jenkins和私人Github回购有一个小问题。 要查看私人回购协议,通常需要以下两件事之一: 该repo上用户的私有SSH密钥 该repo的已注册“部署密钥”的私有SSH密钥 部署密钥是为这种交互而创建的。问题是部署密钥必须在项目之间是唯一的,所以每次我都必须使用不同的密钥。 这意味着我必须为Jenkins用户的ssh代理添加另一个密钥,以便进行每一次额外的repo。 这也意味着默认情况下,代理将尝试所有可用密钥,并且可能会在使用错误密钥进行了几次错误尝试后断开连接 Jenkins

我对Jenkins和私人Github回购有一个小问题。 要查看私人回购协议,通常需要以下两件事之一:

  • 该repo上用户的私有SSH密钥
  • 该repo的已注册“部署密钥”的私有SSH密钥
部署密钥是为这种交互而创建的。问题是部署密钥必须在项目之间是唯一的,所以每次我都必须使用不同的密钥。 这意味着我必须为Jenkins用户的ssh代理添加另一个密钥,以便进行每一次额外的repo。
这也意味着默认情况下,代理将尝试所有可用密钥,并且可能会在使用错误密钥进行了几次错误尝试后断开连接

Jenkins git插件似乎不允许将其指向SSH密钥。 Jenkins在签出之前不允许任何命令行交互,所以我不能使用任何bash技巧来设置正确的键

到目前为止,唯一的解决办法似乎是:

  • 在github中创建“my_jenkins_帐户”用户
  • 向用户添加公钥
  • 将帐户添加到我想使用Jenkins签出的repos
  • 将用户的私钥添加到jenkins用户

  • 有其他的建议吗?

    这并不是一个确切的答案,只是一个暗中的回音,让你知道我也做了同样的事情

  • 以名为
    Jenkins的用户身份运行Jenkins
  • sudo
    作为此用户,并创建一个公共ssh密钥
  • 创建名为myorg machines的免费GitHub帐户
  • 将此
    jenkins
    用户的公共ssh密钥添加到GitHub上的
    myorg机器
    帐户密钥。我将这把钥匙命名为server.name.com上的jenkins,以使事情井然有序
  • 创建一个名为
    Machines-Pull-only
    的GitHub团队。将
    myorg machines
    GitHub用户添加到该团队,并为该团队提供对我的相应私有回购的pull访问权

  • 我同意这似乎有些不确定,但事实上,一年多以来,管理起来相当容易。

    谢谢,我们现在也在运行此设置。它可以工作,但感觉仍然不对:(从某种意义上说,jenking服务器充当存储库的附加用户。从某种意义上说,它是一个单独的实体,作用于存储库。将此实体映射到github用户并非完全不合理。(话虽如此,正如大家所说的,这仍然有点不对劲。但我们必须要做的是,我们要做的是……)