Jenkins错误克隆远程repo'origin',从节点

Nic*_*ile 24 windows github slave jenkins

我需要一些帮助,这是一个星期我遇到这个问题,无法弄清楚发生了什么.我无法从奴隶节点(Jenkins)克隆git repo.我添加了ssh密钥,主机和从机(我已经尝试生成一个密钥,每个虚拟主机和一个密钥)).

在詹金斯:

  • url:git@github.com:<repo>
  • 凭证:这里我尝试使用用户名/密码,使用ssh文件的用户名,直接使用ssh密钥的用户名和-none-.

似乎没有身份验证问题,因为我可以从控制台(slave,slave和host)手动克隆repo.我也可以联系

ssh -T git@github.com

所以ssh键很好,但是当我构建时,它出现在控制台上:

在工作区C:\ Users\IEUser\Desktop\<folder>中远程构建IE10Win7

首先擦除工作区.

克隆远程Git存储库

克隆存储库git@github.com:< repo> .git

git init C:\ Users\IEUser\Desktop\<folder> #timetime = 10

错误:克隆远程repo'origin'时出错

错误:克隆远程repo'origin'时出错

执行Post构建任务......

有没有人有想法?希望有人能给我一个线索,谢谢!

小智 21

我通过设置从节点工具路径,选择git并将其值设置为来解决此问题

C:\Program Files (x86)\Git\bin\git.exe
Run Code Online (Sandbox Code Playgroud)

位置:配置节点 - 工具位置


dhj*_*dhj 11

我最近更新了几个jenkins插件,并在更新后出现此问题.回滚git插件没有帮助,但我还做了一些其他事情来让它工作.我在这里列出了所有这三个,但很可能(2)解决了这个问题.显然git可执行文件已重置为默认值.因此,在特定项目中配置git可执行文件可能就是所需要的.然而,其他项目也可能派上用场.

(1)jenkins linux install上的默认git通常指向/ usr/lib ...你需要指定一个指向windows版本的单独的GitForWindows:

Manage Jenkins
Configure System
Under Git - Git Installations
    Add Git -> Git
    Give it a name to be referenced in projects
      (mine is WindowsGit)
    Set Path to Git Executable
      (mine is "C:\Program Files (x86)\Git\bin\git.exe")
      (for recent git the path is "C:\Program Files\Git\bin\git.exe")
Run Code Online (Sandbox Code Playgroud)

(2)在特定项目上配置git:

Select the project
Select Configure
Under Source Code Management - Git
    Select Git Executable as configured in 1)
    Set credentials or add new (ssh keys, etc)
Run Code Online (Sandbox Code Playgroud)

(3)更新jenkins slave服务以作为特定用户运行:

Go to Windows Services on the slave -- StartMenu, type "services"
Select the Jenkins Slave service in the list on the right
Right-click and select "Properties" of the Jenkins Slave service
Select the "Log On" tab
Update the username and password used in manual tests
    Domain login can be specificied with <DOMAIN>\<USERNAME>
    Local logins just use <USERNAME>
OK to save and exit
Right-click again and select "Restart" to make the changes active.
Run Code Online (Sandbox Code Playgroud)

  • 我已经按照这三个步骤,只有在jenkisn服务上设置管理员权限后才开始工作. (3认同)

Sir*_*ane 4

我在我的案例中找到了一个不错的解决方法。该git clone命令始终继承其进程所有者,这可能会产生影响,即使 Jenkins (SYSTEM) 和 cmd (USER) 的两个所有者似乎在您的系统上具有相同的权限。所有其他配置都是相同的(密钥、已知主机、Git 客户端版本)。

据我所知,git clone从 cmd 调用将会成功,因为它将远程作为 USER 调用,而git clone从 Jenkins 调用可能会被拒绝,因为它将远程作为 SYSTEM 调用。在服务中,您通常通过 GUI 启动 Jenkins,您可以将服务配置为以不同用户身份运行(右键单击服务 --> 属性 --> 登录)。我必须将其设置为 USER@DOMAIN,例如 Jenkins@company.local 等。我不确定 cmd 参数会是什么样子,但我希望会有一个。

另外,我不太知道这种解决方法最终会产生什么区别,因为在我的 Jenkins 上,SYSTEM 和 USER 配置为在整个系统中具有相同的权限,并且它们当然都被远程识别为“Jenkins”。尽管如此,它对我还是有用的。欢迎更深入的见解。