[更新2] 当我从CLI运行git时,它提示我输入密码,这样可以吗?我能够使用ssh私钥的密码短语访问github服务器,但在Jenkins中我从未被要求提供此密码。 [/更新2]
[更新] 是的。我在EC2上的ubuntu实例上运行此操作。我已在/var/lib/jenkins/.ssh中生成了ssh密钥,这是Jenkins创建的用户。我已将Jenkins中的安全选项设置为使用Unix用户/组。 [/更新]
我正在尝试让Jenkins从git (github)拉取代码。我遇到以下错误:
hudson.plugins.git.GitException: Could not clone [my personal repo]
at hudson.plugins.git.GitAPI.clone(GitAPI.java:245)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1121)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1063)
at hudson.FilePath.act(FilePath.java:832)
at hudson.FilePath.act(FilePath.java:814)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1063)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1218)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470)
at hudson.model.Run.run(Run.java:1434)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:239)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin git@github.com:bobbylo/Verbify.git /var/lib/jenkins/.jenkins/jobs/build_dev/workspace" returned status code 128:
stdout: Initialized empty Git repository in /var/lib/jenkins/.jenkins/jobs/build_dev/workspace/.git/
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我已经完成了Github ssh教程。我在EC2实例上生成了私钥,并将其放置在用户jinkens的.ssh目录中。我尝试过将公钥放置于Github上(尝试过Deploy Key和普通SSH Key)。我已经验证了能够使用CLI进行git的传输操作(如pull,clone等),并且它可以正常工作。我正确设置了unix用户/组的权限(事实上当我更改时,我会在Jenkin的控制台日志中看到错误日志的变化)。但是当我尝试使用Jenkin git插件或执行Jenkins shell命令时,我会遇到上述错误。
我已经阅读了有关ssh-agent和ssh-add的信息,以及您如何将其与shell启动脚本绑定,以便您不需要为每个命令输入密码 - 我不确定这在这里是否相关。
否则,我不知道还能尝试什么。任何提示都将有所帮助!