我在 Win 2008 服务器计算机上设置 Jenkins,但在配置 Jenkins 以连接到 GitHub 时遇到了一些问题。我收到以下错误:
Command "git.exe fetch -t git@github.com:USER/REPO.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:950)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:908)
at hudson.FilePath.act(FilePath.java:758)
at hudson.FilePath.act(FilePath.java:740)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:908)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1184)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:537)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:425)
at hudson.model.Run.run(Run.java:1376)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:175)
我检查过的东西
- Jenkins 服务在我的用户名下运行。
- 我更改了 SSH key ,因此它不再有密码。
- 我已通过使用 msysgit 执行与 Jenkins 相同的命令来验证我的 SSH key 有效。
- 验证我所有的路径都是正确的。
Jenkins 配置设置
- Jenkins 1.418
- GitHub 插件 0.5
- Git 插件 1.1.9
msysgit 工作但 CMD 提示不工作 当我导航到有效的存储库并从 DOS 提示符执行命令时,它也失败了。
你知道我可能遗漏了什么吗?
感谢您的帮助。
最佳答案
正如我所说,在使用 ssh 协议(protocol)时,指定 HOME
环境变量是关键。
由于 Windows 没有 HOME
,因此您需要将其显式定义到您想要的任何目录。
然而,Vestnik评论:
I've specified to override
HOME
on the windows slave node to point it toC:\jenkins
.
I've put correctid_rsa
under theC:\jenkins\.ssh
but still have this issue.
My slave agent running as service under SYSTEM account.
- 类似问题:“Problem with Hudson + Git + Gitosis on windows”
- 相似分辨率:“Problem with Hudson + Git + Gitosis on windows”
两个建议:
- 您需要让您的从设备显示“
set
”,以便检查在使用 SYSTEM 帐户时是否定义了 HOME。
如果不是,则可能意味着您需要将该变量添加到“系统环境变量”,而不是“用户环境变量”。
- 不要忘记在
%HOME%\.ssh
目录中同时拥有id_rsa
和id_rsa.pub
:你需要两个 public和私钥。 (如“git clone with ssh issue”中所述)
如果你有一个参数化的构建,你也 can define HOME
that way并检查你的奴隶是否为 HOME
选择了正确的值:
关于windows - 设置 Jenkins 时权限被拒绝(公钥),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515039/