tom*_*tom 5 git ssh github jenkins jenkins-plugins
[Update2]所以当我从CLI运行git时它会提示我输入密码吗?我能够使用ssh私钥的密码来访问github服务器,但我从来没有在Jenkins中提示这个或要求提供它.[/ UPDATE2]
[更新]是的.我在EC2上的ubuntu实例上运行它.我在/var/lib/jenkins/.ssh中生成了ssh密钥,这是Jenkins创建的用户.我在Jenkins中设置了安全选项以使用Unix用户/组.[/更新]
我试图让詹金斯从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
Run Code Online (Sandbox Code Playgroud)
我已经完成了Github ssh教程.我在EC2实例上生成了一个私钥.将它放入用户的.ssh目录中,jenkins.将公钥放在Github上(尝试部署密钥+普通SSH密钥).我已经验证我可以进行git over-the-wire操作(拉,克隆等),并且它可以通过CLI与用户一起工作.我已经为用户正确设置了unix用户/组权限(实际上当我更改它时,我在Jenkin的控制台日志中看到错误日志更改).当我尝试使用Jenkin git插件或执行Jenkins shell命令时,我得到上面的错误.
我已经阅读了ssh-agent和ssh-add以及如何将它绑定到shell启动脚本,因此您不需要为每个命令输入密码 - 我不确定这是否与此相关.
否则我不确定我还能尝试什么.任何提示都会有所帮助!
弄清楚了:
- 事实证明,如果您不将其作为守护进程运行,它会使用您运行它的 shell 环境。-事实证明,任何需要用户提示的命令(如 ssh 释义)都会被 Jenkins 视为错误。
目前的解决办法是:
- 在我通过 ssh-add 将 github pub 密钥添加到 ssh-agent 后运行 Jenkins,这样它就不会提示释义。
如果我想将 Jenkins 作为守护进程运行,我想在运行它之前必须正确设置 ssh-agent (我不认为它使用当前的 shell 环境?)。
| 归档时间: |
|
| 查看次数: |
5183 次 |
| 最近记录: |