【问题标题】:Setting up jenkins with git by ssh通过 ssh 使用 git 设置 jenkins
【发布时间】:2015-06-29 19:39:35
【问题描述】:

我正在尝试通过 ssh 使用 Git 设置 jekins。

标准执行:

git clone ssh://[username]@[server]/srv/git/[repo]

将密码存储库克隆到我的磁盘后。

现在在詹金斯

ssh://[username]@[server]/srv/git/[repo].git

Failed to connect to repository : Command "git -c core.askpass=true ls-remote -h ssh://[username]@[server]/srv/git/[repo].git HEAD" returned status code 128:
stdout:
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

或者另一种方式是

【问题讨论】:

    标签: git ssh jenkins git-clone


    【解决方案1】:

    在我们的环境中,具有多从属配置,问题出在主控上。基本上,我们的 slave 配置为连接到 git repo,但不是 master,因为我们不在 master 上执行任何作业。

    上述错误是由于master试图连接到你的git repo。因此,要么确保您的 master 配置正确以访问您的 git repo,或者只是忽略此错误并运行您的作业以查看它是否在 slave 上执行良好。

    【讨论】:

    • 我们的设置中的相同原因。一项作业没有节点限制,并且在结帐时开始“随机”失败(在没有有效密钥的服务器上执行时)。
    【解决方案2】:

    添加 ssh 密钥时,只需在“密码”部分添加密码,因为您拥有私钥,但仍需要密码才能连接到存储库。

    See the image below

    【讨论】:

      【解决方案3】:

      当我使用“带有私钥的 SSH 用户名”类型的凭据时,我收到了相同的错误报告。对于私钥,我选择了“来自 Jenkins master 上的文件”并提供为文件位置 ~/.ssh/some-project-specific-directory/id_rsa

      事实证明,Jenkins 版本 1.637 的波浪号主符号(“~”)存在问题。在我更改为扩展的绝对路径(例如/var/lib/jenkins/.ssh/some-project-specific-directory/id_rsa)后,一切都恢复正常了。

      【讨论】:

        【解决方案4】:

        您正在通过 SSH 连接,这可能意味着您已经设置了基于密钥的登录,因此您可以在没有密码的情况下进行连接。 (将 ~/.ssh/id_rsa 移动到其他位置,我很确定当您执行 git clone 时也会要求您输入密码。)

        在这种情况下,错误是由于 Jenkins 没有类似的私钥设置。您必须为 jenkins 生成一个公钥/私钥对,并将公钥添加到您的 git 服务器,或者将您的私钥添加到 Jenkins。

        相关问答:https://stackoverflow.com/a/8911280/223981

        【讨论】:

          猜你喜欢
          • 2016-01-23
          • 1970-01-01
          • 2012-09-10
          • 2018-04-21
          • 2016-09-13
          • 2018-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多