2012-04-17 2 views
11

Я только что установил своего первого раба Дженкинса. Я запускаю сборку, и я сталкиваюсь с проблемами с SSH-ключами. Главный сервер Jenkins работает под пользователем jenkins. Я установил SSH-ключи, чтобы я мог SSH от ведущего к ведомому без пароля.Jenkins - Невозможно скрыть клон от подчиненного узла. Клавиши SSH

например. От начальника:

[email protected]:~$ ssh slave 
Last login: Tue Apr 17 10:30:22 2012 from masterjenkins.com 
$ whoami 
jenkins 

Таким образом, доказательство того, что подчиненный узел также работает под пользователем «jenkins». (Я скопировал открытый ключ ssh из подчиненного jenkins @ на удаленный сервер git). И я могу выпустить клон GIT вручную от подчиненного, но когда я пнуть сборки от мастера я получаю эти виды сообщений:

ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:abc 
hudson.plugins.git.GitException: Could not clone [email protected]:abc 
Caused by: hudson.plugins.git.GitException: Error performing command: git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build 
Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 
Trying next repository 
ERROR: Could not clone repository 
FATAL: Could not clone 

Так что все еще намекают, что мои ключи SSH не установлены правильно. Может ли кто-нибудь сказать мне, какие ключи мне нужно копировать где?

Большое спасибо, нс

+1

Ошибка проверки ключа хоста, кажется, указывает на то, что ваш пользователь Jenkins никогда не заходил на этот сервер, и вы не приняли ключ хоста, попробуйте sshing из CLI в качестве пользователя jenkins, чтобы убедиться, что он работает, и принять ключ хоста. – Doon

+0

@Doon Это может стать проблемой. Я изначально думал, что вы пытаетесь ssh с той же машины, с которой Дженкинс пытается клонировать. –

+0

Получил ублюдок! Спасибо за все Ваши ответы. Я скопировал и вставил команду jenkins, которая пыталась запустить на подчиненном устройстве: git clone --progress -o origin git @ host: abc/var/lib/jenkins/workspace/abc , и оказалось, что у меня были некоторые оскорбительные клавиши in /root/.ssh/known_hosts После того, как он снова удалился и подключился к git repo, он сработал! – nonshatter

ответ

5

На основе клона URL он появляется вы путаете два различных метода аутентификации. Вы пытаетесь использовать SSH в качестве пользователя git не jenkins. Обычно, когда вы размещаете свои собственные репозитории GIT и клонируете с git @ servername: reponame, вы используете что-то вроде гитолита.

Вы установили что-нибудь вроде гитолита?

Попробуйте ssh'ing, как это вместо этого, как пользователь jenkins.

ssh [email protected] 

Тогда посмотрите, что это значит. Это SSH больше в соответствии с [email protected]:abc, который вы делаете.

Если техника его подводит установки что-нибудь еще на вашем компьютере-сервере, а затем изменить свой клон URL в [email protected]:pathtorepo

Update

/home/git/.ssh/authorized_keys

должен иметь такую ​​запись: (Это все на ONE)

# gitolite start 
command="/home/git/bin/gl-auth-command jenkins",no 
-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAt3+od84Gc9NBVrVb3MKjekHcBDwXXONnVYMNVpuRadoz/FPJTkOIxozKVPJDPI670O252giYpF59sOKqAJL0xEVUrhq8cDFuFwQsSAp0ed1kp/GRxx+pwytL58rcVJEHAy2DkD1z5HlNaZyvIxQyfLTnYfuL1Hx6Qe7dal7mXO0= keycomment 
# gitolite end 

Добавить репозиторий Ионы Дженкинс в gitolite: (Вы, возможно, придется клонировать на той же машине, на котором размещается ваши репозитории, как пользователь gitolite)

git clone [email protected]:gitolite-admin 
cd gitolite-admin 
cd conf 
vi gitolite.conf 

Теперь найти запись для «ABC» или добавить один, если он Безразлично» т существуют

repo abc 
    RW+   = jenkins 

Теперь фиксации и толчок изменения

git commit -a -m "Adding user jenkins to repo abc" 
git push 

Теперь сделайте свой ssh [email protected] снова, чтобы увидеть, если gitolite говорит вам о ваших новых разрешений.

+0

Привет, извините, да, я забыл добавить, что мы используем gitolite для управления нашими пользователями git. ssh'ing от ведущего к подчиненному как ssh git @ slave просто запрашивает пароль. Меня беспокоит то, что я не мог легко найти простой способ увидеть, кто работает, как на рабе. После входа в подчиненное устройство я сделал ssh-keygen и сохранил файлы в папке по умолчанию, которая была /home/jenkins/.ssh/id_rsa. Затем я скопировал открытый ключ в гитолит. – nonshatter

+0

@nonshatter Это означает, что гитолит или что-то еще не настроены правильно. Вы уверены, что authorized_keys настроен правильно на вашем сервере? Я использую gitlab для управления моим экземпляром гитолита. Пока вы не сможете успешно ssh git @ host без пароля, ваши клоны не будут работать. Первое, что нужно проверить, это то, что authorized_keys на сервере для пользователя 'git' и имя вашего jenkins в нем с правильным открытым ключом. –

+0

От раба: '$ SSH мерзавец @ хост запрос выделения PTY не удалось на канале 0 привет Дженкинс, это gitolite v2.1-31-gf0cedeb работает на мерзавца 1.7.0.4 gitolite конфигурации дает вам следующие права доступа : @R_ @W_ \t тестирование RW \t abc Подключение к хосту закрыто.' – nonshatter

Смежные вопросы