2013-03-02 5 views
121

У меня есть проблема с Дженкинс, установив "мерзавец", показывает следующее сообщение об ошибке:Дженкинс ключ хоста не удалось выполнить проверку

Failed to connect to repository : Command "git ls-remote -h https://[email protected]/person/projectmarket.git HEAD" returned status code 128: 
stdout: 
stderr: fatal: Authentication failed 

Я проверил с SSH:

[email protected]:person/projectmarket.git 

Этот является ошибкой:

Failed to connect to repository : Command "git ls-remote -h [email protected]:person/projectmarket.git HEAD" returned status code 128: 
stdout: 
stderr: Host key verification failed. 
fatal: The remote end hung up unexpectedly 

У меня также есть выполните следующие действия с помощью «SSH-ключа».

Войти под Дженкинс

sudo su jenkins 

Скопируйте ключ GitHub в папку Дженкинса .ssh

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/ 

Переименовать ключи

mv id_rsa_github id_rsa 
mv id_rsa_github.pub id_rsa.pub 

, но до сих пор не работает мерзавец репозиторий в jenkins.

спасибо с помощью !.

ответ

143

Изменение к jenkins пользователю и выполнить команду вручную:

git ls-remote -h [email protected]:person/projectmarket.git HEAD 

Вы получите стандартное предупреждение SSH при первом подключении к новому хозяину через SSH:

The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established. 
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40. 
Are you sure you want to continue connecting (yes/no)? 

Тип yes и нажмите Войти. Ключ хоста для bitbucket.org теперь будет добавлен в файл ~/.ssh/known_hosts, и вы больше не получите эту ошибку в Дженкинсе.

+5

показать это: Доступ запрещен (ОткрытыйКлюч). фатальный: удаленный конец неожиданно повесил трубку –

+6

Правильно, но это совсем другая ошибка. Теперь вам нужно добавить свой открытый ключ в репозиторий на bitbucket.org. – ctc

+4

См. Шаг 6 здесь: https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git – ctc

3

Если бы такая же проблема, я исправить это так: разрешение

сброса на id_rsa * только для текущего пользователя нет группы нет других

chmod o-rwx ~/.ssh/id* 
chmod G-rwx ~/.ssh/id* 

ls -lart ~/.ssh/ 


-rw------- 1 jenkins nogroup 398 avril 3 09:34 id_rsa.pub 
-rw------- 1 jenkins nogroup 1675 avril 3 09:34 id_rsa 

И ясно ~/.ssh/know_hosts

Теперь Connect, как Дженкинс

sudo su jenkins 

Попробуйте Дженкинс команды

git ls-remote -h [email protected]:user/project.git HEAD 

Если не появится никаких проблем, теперь Дженкинс сможет подключить репозиторий (для меня ^^ по крайней мере)

+1

Выведенная выше команда (chmod G-rwx ~/.ssh/id *) для смены разрешения группы не удалась. Нижеследующее работало по желанию. chmod g-rwx ~/.ssh/id * – samaitra

26

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

Чтобы устранить «Проверка ключа хоста Jenkins не удалось», выполните следующие действия. Я использовал меркурий с дженкинсами.

1) Выполните следующие команды на терминал

   $ sudo su -s /bin/bash jenkins 

обеспечивают пароль

2) Создание публичного закрытого ключа с помощью следующей команды:

   ssh-keygen 

вы можете увидеть результат, как ::

Generating public/private rsa key pair. 
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

3) Нажмите Enter -> Не давать какие-либо ключевую фразу -> нажмите клавишу ВВОД

   Key has been generated 

4) перейти к -> кошка /var/lib/jenkins/.ssh/id_rsa.pub

5) Скопировать ключ из id_rsa.pub

6) Выход из Баш

7) [email protected]

8) vi .ssh/authorized_keys

9) Вставьте ключ

10) выход

11) вручную войти в ртутный сервер

Примечание: Pls сделать вручную войти в противном случае Дженкинс снова даст ошибку "проверка хоста не удалось"

12) один раз вручную, теперь перейдите к Jenkins и дайте построить

Наслаждайтесь !!!

Good Luck

+2

Что это за __мандантный вход в mercurial server__ означает? – Nabin

2
  • Убедитесь, что мы не редактированием любого из свойств в sshd_config по умолчанию, чтобы пропустить ошибку Failed

  • Хост Верификация - Определенно отсутствующий ввод имени хоста в known_hosts файле

  • Войдите на сервер, на котором произошел сбой процесса, и выполните следующие действия:

    1. Суд пользователю запустить процесс

    2. ssh-copy-id [email protected]

    3. Он подскажет, как это в первый раз, скажем, да, и это будет также задать пароль в первый раз:

      The authenticity of host 'sample.org (205.214.640.91)' can't be established. 
      RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40. 
      Are you sure you want to continue connecting (yes/no)? *yes* 
      

      Запрос пароля?введите пароль

    4. Теперь с сервера, на котором выполняется процесс, сделайте ssh [email protected]. Он должен войти без пароля.

      Примечание: Не изменять права доступа по умолчанию файлов пользователя каталог .ssh, вы будете в конечном итоге с различными вопросами

10

Или вы можете использовать:

ssh -oStrictHostKeyChecking=no host

+2

Это открывает вам потенциальные атаки MITM. – ctc

+0

@ctc все еще может использоваться для локальной сети – FelikZ

+1

Вы можете добавить -oStrictHostKeyChecking = no и подключиться один раз, что добавит хост к файлу known_hosts (то же самое, что и при ssh в командной строке и введите yes, чтобы добавить ключ к файл known_hosts), а затем удалите эту опцию после этого. – krupan

1

Лучший способ, которым вы можете просто использовать свой «git url» в «https» URL fo rmat в файле Jenkins или где хотите.

git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'

1

Попробуйте

SSH-серийник -R имя хоста

-R имя хоста Удаляет все ключи, принадлежащие имя машины из файла known_hosts. Эта опция полезна для удаления хеширования хостов

1

SSH

Если вы пытаетесь его с SSH, а затем клавиша Проверка ошибки Хоста может прийти из-за несколько reasons.Follow этих шагов, чтобы преодолеть все причины ,

  1. установить переменную окружения, как HOME и указать адрес в качестве корневого каталога .ssh папки. например: - Если ваш .ssh хранится внутри Имя папка. C:/Пользователи/Имя.
  2. Теперь убедитесь, что общедоступный ключ SSH также предоставляется в ссылке репозитория. Либо это github, либо битбакет, либо любой другой.
  3. Открыть git bash. И попробуйте клонировать проект из репозитория. Это поможет добавить URL-адрес репозитория в файл known_host, который автоматически создается в папке .ssh.
  4. Теперь откройте jenkins и создайте новую работу. Затем нажмите на configure.
  5. предоставляют URL-адрес клонирования в разделе Управление исходными кодами в Git. URL-адрес должен начинаться с [email protected]/......... или ssh: // proje ........
  6. Под учетной записью вам необходимо добавить имя пользователя и пароль форму вашего репозитория, в которой вы клонируете проект. Выберите эти учетные данные.
  7. Теперь примените и сохраните конфигурацию.
  8. Бинго! Начните строить проект. Надеюсь, теперь вы не получите ошибку проверки ключа хоста!
0

Копирование хозяина ключи от обоих BitBucket и GitHub:

SSH корень @ deployserver «эхо "$ (SSH-keyscan -t RSA, DSA bitbucket.org)" >>/корень /.SSH/known_hosts' SSH корень @ deployserver 'эхо "$ (SSH-keyscan -t RSA, DSA github.com)" >> /root/.ssh/known_hosts'