I am setting up Jenkins on a Win 2008 server machine and am having some trouble configuring Jenkins to connect to GitHub. I get the following error:
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)
Things I Have Checked
- The Jenkins service is running under my username.
- I changed my SSH key so it no longer has a password.
- I have verified my SSH key is valid by executing the same command as Jenkins using msysgit.
- Verified all my paths are correct.
Jenkins Configuration Settings
- Jenkins 1.418
- GitHub plugin 0.5
- Git plugin 1.1.9
msysgit Works but CMD Prompt Does Not
When I navigate to a valid repo and execute the command from the DOS prompt, it also fails.
Do you have any idea what I may be missing?
Thanks for your help.
As I commented, specifying the
HOMEenvironment variable is key, when using ssh protocol.Since Windows doesn’t have a
HOME, you need to define it explicitly, to whatever directory you want.However, Vestnik comments:
Two advices:
set‘ in order to check if HOME is defined when used with the SYSTEM account.If it is not, that may mean you need to add that variable to the “system environment variables”, not the “user environment variables”.
id_rsaandid_rsa.pubin the%HOME%\.sshdirectory: you need both public and private ssh keys. (as mentioned in “git clone with ssh issue“)If you have a parametrized build, you also can define
HOMEthat way and check if your slave picks up the right value forHOME: