我从自制软件(brew install jenkins
)安装了Jenkins配置项。所以,它在我自己的用户下运行。除了SSH访问我的Git存储库之外,一切正常。我不想创建一个单独的用户(例如jenkins)来运行Jenkins并为其创建单独的SSH密钥。我只想使用我自己的SSH密钥。在命令行上访问我的远程git仓库可以正常使用我的ssh密钥,但在Jenkins中它不起作用。它给出了一个“拒绝的权限(公钥)”的错误(用户名和项目会被混淆(<user>
和<project>
)):Jenkins在Mac OS X上使用自制软件安装的SSH问题
Started by user anonymous
Checkout:workspace//Users/<user>/.jenkins/jobs/<project>_run_tests/workspace - [email protected]
Using strategy: Default
Last Built Revision: Revision 093f1641f26632afd1a74c14276ec544356c1d08 (origin/dev)
Checkout:workspace//Users/<user>/.jenkins/jobs/<project>_run_tests/workspace - [email protected]
Fetching changes from 1 remote Git repository
Fetching upstream changes from ssh://[email protected]/<user>/<project>.git
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway
ERROR: (Underlying report) : Error performing command: /usr/local/bin/git fetch -t ssh://[email protected]/<user>/<project>.git +refs/heads/*:refs/remotes/origin/*
Command "/usr/local/bin/git fetch -t ssh://[email protected]/<user>/<project>.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:1012)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:972)
at hudson.FilePath.act(FilePath.java:783)
at hudson.FilePath.act(FilePath.java:765)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:972)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1195)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:568)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:457)
at hudson.model.Run.run(Run.java:1404)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)
现在看来,这是不是用我的SSH密钥连接到GIT服务器。我试着向詹金斯清洗plist添加一个UserName键,做了重启,但没有效果。
我怎样才能让詹金斯使用我的SSH密钥连接到我的远程git回购?
嗯,当我从命令行启动jenkins时,它就会起作用。通过执行'/ usr/bin/java -jar/usr/local/Cellar/jenkins/1.440/lib/jenkins.war',没有问题。所以,我现在的问题是:我如何从launchd运行jenkins并仍然可以通过SSH访问我的远程git仓库? –
颠覆这一点。在Mac OSX 10.7和Jenkins 1.442上遇到完全相同的问题,无法找到解决方案。任何人对此有任何想法? – seanoshea
查看http://lists.macosforge.org/pipermail/launchd-dev/2007-November/000081.html,看起来.plist文件需要位于“LaunchAgents”而不是“LaunchDaemons”目录中。 – seanoshea