Как установить закрытый ключ ssh для hudson/jenkins для доступа к битбакету?

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

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

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


person blank    schedule 12.06.2011    source источник


Ответы (1)


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

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

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

person Ry4an Brase    schedule 13.06.2011
comment
Он работает как пользователь tomcat, поэтому я сгенерировал для него пару ключей ssh, и теперь он подключается. Спасибо. - person blank; 14.06.2011
comment
Я пытался сделать это для Windows, но работа Hudson просто зависает. Я полагаю, что ждет запроса пароля, потому что, делая это вручную, мне нужно ввести пароль закрытого ключа (TortoiseHG plinlk). Любые идеи? - person javydreamercsw; 02.03.2012
comment
Ах, да, для этого вам понадобится секретный ключ без пароля. В качестве альтернативы вы можете использовать pagent и поддерживать его работу, но ключ без пароля для автоматизированного пользователя разумен, если вы не можете использовать его для получения полной оболочки. - person Ry4an Brase; 03.03.2012