Подтвердить что ты не робот

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

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

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

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

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, как описано здесь, но безрезультатно.

Может ли кто-нибудь пролить свет? Благодаря

ИЗМЕНИТЬ

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

4b9b3361

Ответ 1

Похоже, что хост github.com, к которому пытается подключиться jenkins, не указан под пользователем Jenkins $HOME/.ssh/known_hosts. Jenkins работает на большинстве дистрибутивов как пользователь jenkins и, следовательно, имеет свой собственный каталог .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

Ответ 2

Вы пробовали войти в систему как пользователь 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), но эта ссылка, которую вы включили, предположительно исправляет.

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

Ответ 3

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

   ssh-add -l

Если ваш ключ отсутствует в списке, то

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

Ответ 4

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