я использую Докер и я использую образ Дженкинса. Изображение, которое я пытаюсь: https://github.com/orchardup/docker-jenkins
Мне нужно создать пару ключей ssh, чтобы я мог использовать ее для аутентификации в битбакете. Это сделано для того, чтобы Дженкинс мог вытащить мой исходный код и собрать его. Обычно я просто обращаюсь к пользователю jenkins и запускаю ssh-keygen для этого.
Я отредактировал файл запуска:
su jenkins
Это дает мне доступ к оболочке, где я могу запустить ssh-keygen
для установки ключей ssh в домашний каталог пользователя jenkins под ~/.ssh
. После этого я выхожу, и Dockerfile продолжается. Этот домашний каталог /var/lib/jenkins
который также смонтирован как том на хост-сервере.
Проблема в том, что здесь появляются ключи ssh, но они не работают. Есть идеи, как добиться этого лучше?
Спасибо
Я только что понял, что ты используешь git
из вопроса, который я успел не заметить ...
Начиная с версии 2.0 «подключаемого модуля Git» учетные данные для определенных репозиториев можно добавить в раздел «Управление исходным кодом» самого теста. Должна быть метка под названием «Учетные данные», которая позволит вам использовать либо имя пользователя / пароль, либо комбинацию имени пользователя / личного ключа.
Если вы создаете ключ развертывания для каждого репозитория, в котором хотите запускать тесты, добавьте этот ключ развертывания в качестве закрытого ключа в учетные данные, и все будет в порядке.
Ваш подход должен работать.
Вы можете сгенерировать ключи ssh на своем хост-компьютере (ssh-keygen
). Пользователь не обязательно должен быть jenkins, это может быть любой другой пользователь.
После генерации ключей не забудьте поделиться им как томом с Jenkins Docker, чтобы /var/lib/jenkins/.ssh/ (в контейнере) содержал ключи хоста (id_rsa
).
Вы также должны обязательно добавить сгенерированный открытый ключ (id_rsa.pub
) в качестве «ключа SSH» для любого пользователя Bitbucket, у которого есть права делать то, что вам нравится, с помощью Jenkins.