Раб Дженкинса неспособен клонировать от Gitlab
У меня есть кластер Jenkins с автоматическим масштабированием в AWS, который порождает и запускает агентов через JNLP. И Master & Slaves работают на Ubuntu. Я не совсем понимаю, где Дженкинс на самом деле хранит ключи SSH для Gitlab, или если / как от рабов ожидается его использование. Всякий раз, когда я запускаю работу Дженкинса на своих рабах, я получаю следующее:
git clone git@git.mydomain.co.uk/myproject.git
Cloning into 'build-scripts'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Я могу подтвердить поведение, используя SSHing для подчиненных и выполняя ту же команду вручную. Подчиненный.jar запускается от имени пользователя "Jenkins", но я не могу использовать клон Git, если он является пользователем по умолчанию "ec2-user", "Jenkins" или даже как root. У меня есть плагин Git, плагин Git Credentials и плагины Git Server, которые, как я ранее думал, копируют ключи в ведомое устройство при запуске. Я могу запустить ту же самую команду SSH от Мастера, и она отлично работает, а также от Мастера, который может общаться с Git для клонирования репозиториев в виде многоотраслевых конвейеров.
Это может быть простое решение, но я немного озадачен. Кто-нибудь знает, что требуется, чтобы позволить рабам SSH/ копировать ключ куда-нибудь пригодный для использования?
1 ответ
Я предполагаю, что ваш ssh-ключ не добавлен в вашу учетную запись github или подчиненный процесс Jenkins запускается с другим пользователем, нежели тот, который вы использовали для запуска git из командной строки. Если это так - вам нужно добавить ключ ssh к вашему аккаунту на github или подтвердить первоначальную проверку ключа хоста для этого пользователя, прежде чем вы сможете запустить git в Jenkins. (вы знаете - это сообщение, которое вы получаете при первом соединении с ssh: