У меня есть GIT-репозиторий в bitbucket, к которому я хочу, чтобы мой сервер Jenkins получал автоматический доступ. Это возможно только при использовании аутентификации с открытым / закрытым ключом. Поэтому я создал пару ключей и загрузил открытый ключ в bitbucket. Открытый и закрытый ключи находятся на моем сервере в папке .ssh пользователя tomcat, на котором работает jenkins. Я могу клонировать свой проект, когда я вошел в систему как этот пользователь на сервере.
Однако я не могу заставить Дженкинса действительно проверить код из bitbucket. Это всегда говорит:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Что ж, я предполагаю, что это происходит потому, что при доступе к хранилищу через ssh мне нужно предоставить парольную фразу для моего закрытого ключа, а jenkins не может сделать это автоматически. Я прочитал, что можно избежать запроса парольной фразы, предоставив файл конфигурации внутри папки .ssh, содержащей следующее содержимое:
Host bitbucket.org
IdentityFile ~/.ssh/id_dsa
Я так и сделал, но как только я предоставлю этот файл, я больше не смогу клонировать репозиторий из bitbucket. Даже не напрямую с сервера, получая то же сообщение об ошибке, как показано выше.
Кому-нибудь удалось заставить эту настройку работать? Я также прочитал следующую ветку здесь о stackoverflow, которая была бесполезна для меня: Как установить частный ключ ssh для доступа hbuson / jenkins к bitbucket? , и я проверил, что tomcat действительно работает под пользователем tomcat6, создать пустой тестовый проект, который просто запускает "whoami". Так что у меня почти нет идей для решения проблемы.