Ошибка Jenkins с ошибкой проверки ключа хоста

Я скачал и установил Jenkins для Mac OSX на свой Macbook Pro (ОС: Mountain Lion). Теперь я хочу настроить его, чтобы вытащить проект из битбакета и выполнить автоматическую сборку.

Я создал ключ ssh, добавил его в битбакет и попытался настроить задание сборки. Однако я получаю сообщение об ошибке:

Не удалось подключиться к репозиторию: команда «git ls-remote -h HEAD» вернула код состояния 128: stdout: stderr: проверка ключа хоста не удалась. фатальный: удаленный конец неожиданно повесил трубку

Я попытался удалить домен, вызывающий проблему, из known_hosts, но все еще получаю эту ошибку.

Пожалуйста, порекомендуйте.


person Lennie    schedule 30.10.2012    source источник


Ответы (1)


Я думаю, что нашел возможное решение в этом сообщении: http://colonelpanic.net/2011/06/jenkins-on-mac-os-x-git-w-ssh-public-key/

Jenkins в Mac OS X Я только что закончил настройку сервера сборки в Mac OS X с помощью Jenkins (ранее Hudson). Компания, в которой я работаю (GradeCam), использует git и gitolite для управления версиями, поэтому я не ожидал проблем с использованием Jenkins для создания наших инструментов с помощью плагина git.

Однако я быстро столкнулся с загвоздкой: сервер управления исходным кодом находится на общедоступном адресе, поэтому наш исходный код недоступен, кроме как через ssh, а доступ gitolite ssh использует аутентификацию с закрытым ключом. Что ж, я опытный системный администратор Unix, так что это не казалось большой проблемой — в конце концов, настройка аутентификации с открытым ключом — это детская игра, верно?

Установка по умолчанию

Установка Jenkins по умолчанию в Mac OS X (на момент написания этой статьи) устанавливает plist Launch Agent в /Library/LaunchAgents/org.jenkins-ci.plist. Этот файл plist заставляет Jenkins загружаться как пользователь «демон», что звучит нормально, за исключением того, что домашний каталог для пользователя «демон» — /var/root, такой же, как и для пользователя root. Это означает, что каталог .ssh никогда не будет иметь правильных разрешений для использования закрытого ключа.

Создание нового скрытого пользователя

Мое решение состояло в том, чтобы создать нового «скрытого» пользователя для запуска Дженкинса. Следуя инструкциям, которые я нашел в сообщении в блоге, я создал пользователя «jenkins» с домашним каталогом «/Users/Shared/Jenkins/Home»:

sudo dscl . create /Users/jenkins
sudo dscl . create /Users/jenkins PrimaryGroupID 1
sudo dscl . create /Users/jenkins UniqueID 300   
sudo dscl . create /Users/jenkins UserShell /bin/bash
sudo dscl . passwd /Users/jenkins $PASSWORD
sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/

Затем я остановил Jenkins: “sudo launchctl unload -w /Library/LaunchAgents/org.jenkins-ci.plist” и отредактировал файл plist, чтобы установить имя пользователя jenkins вместо daemon.

“chown -R jenkins: /Users/Shared/Jenkins/Home”

устанавливает разрешения такими, какими они должны быть, а затем “sudo launchctl load -w /Library/LaunchAgents/org.jenkins-ci.plist” заставит вас работать!

Чтобы запустить git через ssh, «sudo su — jenkins», чтобы получить консоль от имени пользователя jenkins, настроить ключи ssh и тому подобное. Убедитесь, что вы можете использовать ssh туда, куда вы хотите перейти (или даже выполнить тестовое клонирование git), потому что вам нужно сохранить ключи, чтобы они не запрашивались, когда jenkins пытается выполнить клонирование.

Это должно сделать вас! Надеюсь, это поможет кому-то.

person Claus    schedule 08.11.2012
comment
Пожалуйста, убедитесь, что ваши ответы не зависят от URL. Они должны быть переданы в последний раз, когда URL-адрес умирает. - person StarWind0; 30.01.2017