Настройка jenkins на centos: проблемы с ключами ssh и git

Прошло много вопросов, но, похоже, ничто не решает мою проблему. Или, если быть более точным, я не уверен, что все делаю правильно. Итак, вот оно:

Установил ОС Centos 6.3. Затем я следовал следующему руководству по установке jenkins:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

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

В URL-адресе репозитория я набираю следующее: git@gitserver:myrepo.git Конечно, я получаю сообщение об ошибке: stderr: Проверка ключа хоста не удалась.

хорошо, мне нужно сгенерировать ключи ssh, и все будет хорошо. Итак, я делаю следующее:

su - jenkins

но, к сожалению, он не переключается на пользователя jenkins.

кот /etc/passwd

показывает следующее:

jenkins:x:496:492:Jenkins Continuous Build Server:/var/lib/jenkins:/bin/false

поэтому кажется, что у него нет обычного домашнего каталога.

Вопрос в том, как мне сгенерировать ключи для jenkins или, если приведенные выше шаги были неправильными, как мне это исправить?

Большое спасибо!

Обновление: я сгенерировал ключи (как пользователь root) и поместил их в дом jenkins и сделал точно и скопировал открытый ключ на сервер git. Все равно не помогло.

Когда я смотрю на журнал сборки, он говорит:

Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/myrepo/workspace

этот анонимный пользователь - это другой пользователь, созданный jenkins, или все еще jenkins запускает команды?


person Tadzys    schedule 26.09.2012    source источник
comment
У меня такая же проблема :(.   -  person Nilesh    schedule 04.12.2012


Ответы (8)


Я предполагаю, что у вас есть root-доступ, если вы смогли установить Jenkins RPM. Вы судились с пользователем jenkins, когда вошли в систему как root? Если нет, вы должны сделать это или использовать

sudo su - jenkins

если у вашего вошедшего в систему пользователя есть доступ к sudo.

Затем запустите

ssh-keygen -t rsa

для создания пары ключей RSA для пользователя jenkins, и вы можете загрузить открытый ключ на свой сервер git. Ключ будет сгенерирован как /var/lib/jenkins/.ssh.id_ra.pub, если вы возьмете значения по умолчанию.

person gareth_bowles    schedule 26.09.2012
comment
Проблема в том, что он не переключается на дом Дженкинса. Все еще остается в доме моих пользователей. Но я все еще генерировал ключи как пользователь root в доме jenkins и делал именно так, как вы сказали, но ошибка все еще сохраняется. - person Tadzys; 26.09.2012
comment
Хм, я неправильно отформатировал свою команду sudo выше - только что исправил это. - person gareth_bowles; 27.09.2012
comment
Верно ли, что владельцем файла ключа является root? Вероятно, у пользователя jenkins нет оболочки входа в систему, и это может быть причиной. Проверьте файл /etc/passwd на наличие такой записи, как jenkins:x:999:1001::/var/lib/jenkins:/sbin/nologin, и временно измените /sbin/nologin на /bin/bash, чтобы переключиться на пользователя jenkins. - person Daniel S.; 10.10.2012
comment
Запустите ssh-keygen с sudo для jenkins, но без su, т.е. sudo -u jenkins ssh-keygen, когда у пользователя jenkins нет оболочки входа в систему, как в настройке Centos RPM. - person jnas; 29.08.2013

1 изменить настройки входа пользователя jenkins

vi /etc/пароль

обновить /bin/false до /bin/bash

2 вс - дженкинс

Дом пользователя jekins будет /var/lib/jenkins

3 ssh-кейген

кошка .ssh/id_rsa.pub

скопируйте этот ключ в битбакет

4 ssh [email protected]

это установит ключ ssh битбакета в .ssh/known_hosts

Теперь вы должны иметь доступ

person jordan    schedule 04.10.2013

Я думаю, что каталог .ssh должен находиться в /var/lib/jenkins.

Работает на меня

person Daniel S.    schedule 26.09.2012
comment
действительно оно есть. Но там было пусто. Что я сделал, я сгенерировал ключи в этом каталоге. Взял открытый ключ и добавил его в файл author_keys на сервере git. Все равно не работает... - person Tadzys; 26.09.2012

У меня были проблемы с переходом на пользователя jenkins. Мне нужно было правильно создать пользователя в системе, чтобы я мог войти в нее. Я выполнил эту команду, чтобы помочь мне создать пользователя jenkins в системе:

su -s /bin/bash jenkins
person Jonathan Airey    schedule 11.11.2013

1) Сначала сделайте jenkins реальным пользователем, отредактировав файл /etc/passwd.

/bin/false в /bin/bash

2) Войдите в систему под пользователем jenkins, теперь домашний каталог Jenkins будет /var/lib/jenkins

su - jenkins

3) Снова сгенерируйте ключи ssh (ключи будут созданы в /var/lib/jenkins/.ssh)

ssh-keygen -t rsa

4) скопируйте ключ id_rsa.pub и вставьте в файл author_keys вашего git

5) Тем не менее, если это не сработает, возможно, вам нужно проверить права доступа к вашему каталогу .ssh и его содержимому.

chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
person Sridhar    schedule 12.11.2013

jenkins - это служебная учетная запись, у нее нет оболочки по дизайну. Общепринято, что учетные записи служб не должны иметь возможность входа в систему в интерактивном режиме.

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

если по какой-то причине вы хотите войти как jenkins, вы можете сделать это с помощью: sudo su -s /bin/bash jenkins

person Mohamed Dernoun    schedule 20.05.2015

Чтобы войти в систему как пользователь «jenkins», возможно, вы могли бы попробовать это:

sudo -s -H -u jenkins

И попробуйте вызвать:

bash-4.1$ whoami
jenkins

Надеюсь, поможет.

person firmanelhakim    schedule 07.05.2015

Что я сделал: sudo -u jenkins ssh-keygen. Это работает до сих пор

person Hieu Pham    schedule 09.09.2016