windows - 设置 Jenkins 时权限被拒绝(公钥)

标签 windows git github jenkins

我在 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 to C:\jenkins.
I've put correct id_rsa under the C:\jenkins\.ssh but still have this issue.
My slave agent running as service under SYSTEM account.

两个建议:

  • 您需要让您的从设备显示“set”,以便检查在使用 SYSTEM 帐户时是否定义了 HOME。
    如果不是,则可能意味着您需要将该变量添加到“系统环境变量”,而不是“用户环境变量”。

display env from the job definition

  • 不要忘记在 %HOME%\.ssh 目录中同时拥有 id_rsaid_rsa.pub:你需要两个 public和私钥。 (如“git clone with ssh issue”中所述)

如果你有一个参数化的构建,你也 can define HOME that way并检查你的奴隶是否为 HOME 选择了正确的值:

define custom variables

关于windows - 设置 Jenkins 时权限被拒绝(公钥),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515039/

相关文章:

windows - Windows Vista 中的 ODBC 文件 DSN 在哪里

c - 套接字接受在没有释放的情况下消耗了我在 Windows 上的内存

windows - Qmake 中 win64 配置的标识符

git - 预加载git存储库?

git - 使用 Git (Bitbucket) 拒绝 Dockerfile 公钥权限

Github flavor 的 Markdown 和 Jekyll 中突出显示的 pygments

bash - GitHub - 重置本地分支并 pull 新更改

windows - 如何在 Delphi XE5 上安装 Cindy Component?

Git 和 Dropbox - 本地存储库

git - 做了 git reset --hard,但在 git pull 时仍然有冲突