本地 Jenkins 无法验证远程 Gitlab 私有仓库

8
我在Windows上安装了Jenkins以及我所需的所有插件。当我创建一个新任务并在“仓库URL”中输入我的URL时,它显示为:http://git.*****.org/*****/seleniumproject.git
Help for feature: Repository URL
Failed to connect to repository : Command "C:\Program Files (x86)\Git\bin\git.exe ls-remote -h http://git.*****.org/*****/seleniumproject.git HEAD" returned status code 128:
stdout:
stderr: fatal: Authentication failed for 'http://git.*****.org/*****/seleniumproject.git'`

我的问题: 我该如何验证到远程的Gitlab?我有一个带有所有密钥的 .ssh 文件夹,但是不知道该做什么...

更新:奇怪的是,我的TortoiseGit能够完美地工作。

我的解决方案:

  1. 进入Jenkins路径,将 .ssh 文件夹保存在根目录下,例如C:\Jenkins\.ssh。可以在C:\Users\yourname\.ssh中找到 .ssh 文件夹。
  2. 进入Jenkins > Manage Jenkins > Manage Credentials,在这里可以添加您的私有密钥或从jenkins主机选择!/.ssh文件夹。
  3. 进入Jenkins > Manage Jenkins > Configure System,在git可执行文件中写入C:\Program Files (x86)\Git\cmd\git.exe,路径必须包含cmd
  4. 创建新的任务,并在存储库URL中添加ssh://git@git.sitename.org:/name/projet.git
3个回答

3

我的修复方式:

  1. 进入 Jenkins 的路径并在根目录下保存 .ssh 文件夹,例如 C:\Jenkins\.ssh。.ssh 文件夹可以在 C:\Users\yourname\.ssh 找到。
  2. 进入 Jenkins > Manage Jenkins > Manage Credentials,在此处可以添加您的私钥或从 Jenkins 主机 !/.ssh 中选择。
  3. 进入 Jenkins > Manage Jenkins > Configure System,将 git 可执行文件路径写为 C:\Program Files (x86)\Git\cmd\git.exe(必须带有 cmd)。
  4. 创建新作业,并在仓库 URL 中添加 ssh://git@git.sitename.org:/name/projet.git。

优秀的反馈。+1。比我的答案更准确。 - VonC
你好,我有两个问题。C:\Jenkins是什么?Jenkins的主目录是什么?在C:\Program Files (x86)\Git\cmd\git.exe path must be with cmd中的意思是什么?我在哪里可以设置它? - while1pass

1

我有一个包含所有密钥的 .ssh 文件夹。

如果您继续使用 http(s) url,这些密钥将永远不会被读取。

您应该使用 ssh url,并首先确保它正常工作:

ssh -Tv ssh://git@git.*****.org

(假设您在服务器端需要的用户帐户是'git')
请注意,本指南中关于SSH的部分 在这里很重要:

您已安装TortoiseGIT

http://guides.beanstalkapp.com/version-control/git-on-windows/git-ssh-variable.png

如果您在设置密钥的计算机上安装了TortoiseGit,可能会遇到问题。TortiseGit创建了一个环境变量,将Plink配置为您的SSH密钥库,这可能会在尝试使用Git和SSH时发生冲突。无论您如何更改配置或卸载TortoiseGit,该环境变量都会持续存在,直到您删除它,Git才能查找您的常规.ssh目录以找到正确的密钥。在我们的情况下,环境变量看起来像这样:
GIT_SSH=c:\Program Files\Putty\plink.exe. 

环境变量可以在这里找到:

  • Windows XP: 控制面板 → 系统属性 → 高级 → 环境变量
  • Windows 7: 控制面板 → 系统 → 高级系统设置 → 环境变量

@AndrianDurlestean -Tv 只是让您使用 ssh -Tv 进行测试。但一旦这个工作正常,您就不需要在 ls-remote 中使用 -Tv 了。 - VonC
我得到了:没有与该名称关联的地址。 - Andrian Durlestean
你能试一下:ssh -Tv git@git.****.org:9999(没有 ssh:// 和最后的 /)吗? - VonC
遗憾的是,我遇到了同样的问题 =(。如果我不使用端口号,就会出现消息“端口22:坏文件编号”,但我的git服务器使用的是9999端口。 - Andrian Durlestean
@AndrianDurlestean 我已经编辑了我的答案,以解决在已经安装TortoiseGit的环境中使用git的问题。 - VonC
显示剩余2条评论

1

尝试使用C:\Program Files (x86)\Git\cmd\gitk.cmd代替\bin\git.exe。 如果问题未解决,则此处提供了有关如何配置ssh的信息。 有时您还可能遇到公钥错误,可以在此处找到解决方法。 如果您想生成新的ssh密钥,此篇文章将对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接