2012-10-03 3 views
0

Если мы запустим Jenkins Ведомый как мерзавец службы Windows не удается извлечь с ошибкойGit не работает, когда Дженкинс Ведомый работает как служба Windows

The server's host key is not cached in the registry 

Сервис работает в качестве конкретного пользователя домена, который мы создали с помощью шпаклевки. Если мы входим в систему с этим пользователем, Git Bash работает без запроса пароля, поэтому ключ SSH настроен правильно.

Мы обнаружили, что если вы используете Командную строку для запуска подчиненного устройства Jenkins под пользователем, мы устанавливаем ssh-ключ в качестве сборки. Используемая нами команда

javaws http://brick:8083/computer/nsw-buildbox1/slave-agent.jnlp 

Это работает отлично. Я подозреваю, что, несмотря на то, что служба по-прежнему работает как один и тот же пользователь домена, есть что-то другое, где он не может найти папку .ssh. Кто-нибудь сталкивался с этой проблемой и знал, как ее исправить. Где служба Windows ищет известные хосты?

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

ответ

0

Это не папка .ssh, но в реестре.

Mount the registry hive of that user, и поиск под HKEY_CURRENT_USER\Software\SimonTatham\Putty\SshHostKeys. Скопируйте свой хост-ключ там, он должен содержать ключ хоста.

+0

У пользователя есть сервис, который уже имеет запись под этим путем. Имеет ли у Windows-службы определенный пользователь (а не локальная система или сетевой пользователь) другой улей, если вы действительно используете этот пользователь? если да, где он находится –

+0

У каждого пользователя есть свой собственный куст реестра. Он находится в профиле пользователя. Печально известный 'USER.DAT' файл. –

+0

Итак, если у вас есть пользователь Bob и под его службой вы настроили его использовать Боб вместо локальной системы, не будет ли он использовать тот же User.Dat в C: \ users \ Bob \ NTUSER.Dat (я предполагаю его NTUSER.Dat для Win7). Этого не может быть, потому что он работает, когда мы запускаем его из командной строки для этого пользователя. так что .dat-файл будет использовать службу Windows? –

2

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

  • Когда вы работаете рабыню: javaws http://brick:8083/computer/nsw-buildbox1/slave-agent.jnlp вы на самом деле работаете рабыню как текущий вошедший пользователь, система уже есть SSH сеанс кэшируется для текущего пользователя правильно.

  • Но когда вы выбрали установку в качестве службы, ваша служба Windows фактически не работает как текущий пользователь. почему вам всегда дается эта ошибка «Ключ хоста сервера не кэшируется в реестре». Да, вы никогда не подключались к серверу в качестве пользователя службы. Чтобы это исправить, необходимо вручную сделать сервис работает как текущий user.Do

    1. Run «services.msc»
    2. Расположить "Дженкинс ведомого сервис
    3. Недвижимость-> Вход on-> Выбери текущий пользователь.
Смежные вопросы