Как мне установить закрытый ключ ssh для доступа hudson / jenkins к bitbucket? - PullRequest
11 голосов
/ 12 июня 2011

Я пытаюсь настроить сервер Debian с Apache2 в качестве внешнего интерфейса для Tomcat 7 под управлением Jenkins - который работает - но я хочу, чтобы Jenkins отслеживал частный репозиторий Mercurial, размещенный в bitbucket, и я хотел бы использовать SSH , (Я пробовал с обычным https, но все равно не радует - здесь есть вопрос-ответ на SO, который рекомендует использовать ssh)

Я развернул Jenkins с помощью возможности горячего развертывания Tomcat, поместив файл .WAR Jenkins в / webapps. Я могу сгенерировать пару открытый / закрытый ключ на сервере и добавить свой открытый ключ в учетную запись bitbucket, но как мне заставить Jenkins использовать свой закрытый ключ для аутентификации при доступе к закрытому хранилищу в bitbucket?

Я видел сообщение в блоге, в котором используется apt-get для установки Hudson на Debian, в котором создается пользователь Hudson (так что я мог бы добавить закрытый ключ для этого пользователя), но установка его с помощью автоматического развертывания tomcat не добавляет Jenkins пользователь. Если для Jenkins не настроен пользователь Unix, могу ли я настроить того, который Jenkins будет использовать при аутентификации?

1 Ответ

9 голосов
/ 13 июня 2011

Если вы можете управлять командной строкой mercurial из Jenkins, вы можете передать команду --ssh, чтобы сообщить mercurial какую команду ssh вызывать.Что-то вроде этого, вероятно, будет работать:

hg --ssh '/usr/bin/ssh -i /path/to/private/key' ...

В качестве альтернативы вы можете выяснить, от какого пользователя Jenkins работает (это должен быть какой-то пользователь) и поместить файл в * 1007 этого пользователя* даже если это /root/.ssh/

...