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

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

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

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

Ответ 1

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

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

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