Как установить приватный ключ 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/