Проблема Jenkins SSH в Mac OS X, установленная homebrew - PullRequest
1 голос
/ 26 ноября 2011

Я установил Jenkins CI из доморощенного (brew install jenkins).Итак, он работает под моим собственным пользователем.Все работает нормально, за исключением доступа по SSH к моему репозиторию Git.Я не хочу создавать отдельного пользователя (например, jenkins) для запуска Jenkins и создавать для него отдельные ключи SSH.Я просто хочу использовать свои собственные ключи SSH.Доступ к моему удаленному репозиторию git из командной строки работает нормально с моими ssh-ключами, но в Jenkins это не работает.Выдает ошибку «Отказано в доступе (publickey)» (имя пользователя и проект запутаны (<user> и <project>)):

Started by user anonymous
Checkout:workspace / /Users/<user>/.jenkins/jobs/<project>_run_tests/workspace - hudson.remoting.LocalChannel@456d3d51
Using strategy: Default
Last Built Revision: Revision 093f1641f26632afd1a74c14276ec544356c1d08 (origin/dev)
Checkout:workspace / /Users/<user>/.jenkins/jobs/<project>_run_tests/workspace - hudson.remoting.LocalChannel@456d3d51
Fetching changes from 1 remote Git repository
Fetching upstream changes from ssh://git@bitbucket.org/<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://git@bitbucket.org/<user>/<project>.git +refs/heads/*:refs/remotes/origin/*
Command "/usr/local/bin/git fetch -t ssh://git@bitbucket.org/<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 сервер.Я попытался добавить ключ UserName к списку запусков jenkins launchagent, сделал перезапуск, но безрезультатно.

Как я могу заставить jenkins использовать мои SSH-ключи для подключения к моему удаленному репозиторию git?

1 Ответ

2 голосов
/ 23 марта 2012

Я не знаю, как homebrew настраивает Jenkins, но, очевидно, он работает в контексте, где у него нет доступа к вашему агенту ssh, а ваш ключ ssh защищен парольной фразой.

Когда вы запускаете его в окне терминала, в вашей среде есть переменная SSH_AUTH_SOCK, которую ssh-клиент использует для аутентификации. Если вы не можете использовать агент ssh, вам нужно удалить фразу-пароль из ключа ssh.

...