Git | Дженкинс | В доступе отказано (publickey)

У нас есть общая учетная запись / пользователь LDAP. Мы планируем использовать этого пользователя для настройки Jenkins для нашей команды.

  1. Я вошел в систему на машине / ВМ, используя мой логин и установил Jenkins.
  2. Затем я сгенерировал ключи ssh только из своей учетной записи, но идентификатор электронной почты, который я указывал при создании ключей ssh, был обычным пользователем.
  3. Затем я добавил публичный ключ ssh в GitHub (в Github я вошел в систему с помощью обычного пользователя).
  4. Добавлен закрытый ключ для плагина учетных данных Jenkins SSH.
  5. Создал работу, которая делает опрос SCM, и она работала нормально.
  6. Мне нужно выполнить некоторые команды git (например, pull, checkout, tag и т. Д.). Поэтому я пишу муравьиные сценарии для достижения этой цели.
  7. Когда я выполняю цель GIT ant [1] через Jenkins, я получаю следующую ошибку:

получить: [эхо] --------------------------------------------- ------------

[echo] Последние новости от git@github.XYZ.com: мастер XYZ/ABC

[эхо] ----------------------------------------------- ----------

[exec] git@github.XYZ.com: В доступе отказано (публичный ключ).

[exec] fatal: Не удалось прочитать из удаленного хранилища.

[ВЫПЛНЫ]

[exec] Пожалуйста, убедитесь, что у вас есть правильные права доступа

[exec] и хранилище существует.


Нужно ли входить в виртуальную машину, используя общую учетную запись / пользователя, генерировать ключи ssh и затем использовать эти ключи? Если да, то почему пункт № 5 работает нормально? Если нет, что не так я здесь делаю?

[1] - Укажите команды git в плагине Jenkins Git.

1 ответ

Дженкинс будет использовать свой закрытый ключ, связанный с заданием, для чтения удаленного репо.

Но: скрипт, выполняемый внутри самого задания, будет использовать ключ SSH по умолчанию, найденный у пользователя, запускающего Jenkins: ~user/.ssh/id_rsa

Убедитесь, что закрытый ключ по умолчанию - тот, который вам нужен для этой работы (или вы можете установить его через ~/.ssh/config): смысл в том, что это больше не связано с плагином Jenkins SSH Credential.

Другие вопросы по тегам