Управление SSH ключами в Jenkins для Git


Я пытаюсь заставить Дженкинса работать с репозиторием, размещенным на GitHub (используя плагин Jenkins Git). Репозиторий имеет несколько подмодулей git, поэтому я не уверен, что хочу пытаться управлять несколькими ключами развертывания.

моя личная учетная запись пользователя GitHub является сотрудником каждого из проектов, которые я хочу вытащить с Дженкинсом, поэтому я создал ключ SSH в /var/lib/jenkins/.ssh и добавил его в мой личный аккаунт GitHub.

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

Failed to connect to repository : Command "git ls-remote -h [email protected]:***/***.git HEAD" returned status code 128:
stdout: 
stderr: Host key verification failed. 
fatal: The remote end hung up unexpectedly

аналогично, когда я планирую сборку, я получаю:

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

Я также попытался настроить файл конфигурации SSH, как описано здесь, но безрезультатно.

может ли кто-нибудь пролить свет? Спасибо

EDIT

Я должен добавить, что я запускаю CentOS 5.8

4   51  

4 ответа:

похоже github.com хост, к которому Дженкинс пытается подключиться, не указан в списке пользователя Дженкинса $HOME/.ssh/known_hosts. Дженкинс работает на большинстве дистрибутивов как и, следовательно, имеет свою собственную .ssh каталог для хранения списка открытых ключей и known_hosts.

самое простое решение я могу придумать, чтобы исправить эту проблему:

# Login as the jenkins user and specify shell explicity,
# since the default shell is /bin/false for most
# jenkins installations.
sudo su jenkins -s /bin/bash

cd SOME_TMP_DIR
# git clone YOUR_GITHUB_URL

# Allow adding the SSH host key to your known_hosts

# Exit from su
exit

вы пробовали войти в систему как пользователь jenkins?

попробуйте это:

sudo -i -u jenkins #For RedHat you might have to do 'su' instead.
git clone [email protected]:your/repo.git

часто вы видите сбой, если хост не был добавлен или авторизован (поэтому я всегда вручную регистрируюсь как hudson/jenkins для первого подключения к github/bitbucket), но эта ссылка, которую вы включили, предположительно, исправляет это.

Если выше не работает, попробуйте скопировав ключ. Убедитесь, что это ключ паба (т. е. id_rsa.паб.) Может быть, вы пропустили некоторые символы?

по этому статьи, вы можете попробовать следующую команду:

   ssh-add -l

Если Вашего ключа нет в списке, то

   ssh-add /var/lib/jenkins/.ssh/id_rsa_project

Это работает для меня, если у вас есть config и файл закрытого ключа в папке /Дженкинс/.ssh/ вам нужно chown (изменить владельца) для этих 2 файлов, то перезагрузка Дженкинс для того, чтобы экземпляр Дженкинса прочитал эти 2 файла.