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

У меня проблема с jenkins, установка "git" показывает следующую ошибку:

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-ключа".

Вход в систему под Jenkins

sudo su jenkins

Скопируйте свой ключ github в папку Jenkins.ssh

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

Переименуйте клавиши

mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub

но все еще не работает git репозиторий в jenkins.

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

Ответ 1

Измените пользователя 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 и нажмите Enter. Ключ хоста для bitbucket.org теперь будет добавлен в файл ~/.ssh/known_hosts, и вы больше не получите эту ошибку в Jenkins.

Ответ 2

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

Чтобы решить проблему с проверкой ключа хоста 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 → Не вводите кодовую фразу → нажмите enter

             Key has been generated

4) перейти к → cat/var/lib/jenkins/.ssh/id_rsa.pub

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

6) Выход из bash

7) [email protected]

8) vi .ssh/authorized_keys

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

10) выйти

11) Вручную войти на сервер меркуриона

Примечание: Pls делает вручную вход в систему, иначе jenkins снова выдаст ошибку "Ошибка хоста"

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

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

Удача

Ответ 3

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

ssh -oStrictHostKeyChecking=no host

Это будет небезопасно (человек в середине атаки), но самое простое решение.

Лучший способ сделать это - создать правильные сопоставления между хостом и IP-адресом, поэтому ssh не будет жаловаться:

#!/bin/bash

for domain in "github.com" "bitbucket.org"; do
    sed -i "/$domain/d" ~/.ssh/known_hosts
    line=$(ssh-keyscan $domain,'nslookup $domain | awk '/^Address: / { print $2 ; exit }'')
    echo $line >> ~/.ssh/known_hosts
done

Выдержка из сущности.

Ответ 4

Имела такую ​​же проблему, я исправляю ее так:

reset разрешение на 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

Теперь подключитесь как jenkins

sudo su jenkins

Попробуйте команды jenkins

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

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

Ответ 6

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

  • Ошибка проверки хоста - определенно отсутствующая запись имени хоста в файле known_hosts

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

    • Судо для пользователя, выполняющего процесс

    • ssh-copy-id [email protected]

    • Он будет предлагаться в первый раз, скажем "да", и он также запросит пароль в первый раз:

      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*
      

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

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

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

Ответ 7

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

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

Ответ 8

SSH

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

  • Задайте переменную среды HOME и укажите адрес в качестве корневого каталога папки .ssh. например: - Если ваш .ssh хранится внутри папки Имя.  C:./Users/Имя
  • Теперь убедитесь, что общедоступный ключ SSH также предоставляется в ссылке репозитория. Либо это github, либо битбакет, либо любой другой.
  • Откройте git bash. И попробуйте клонировать проект из репозитория. Это поможет добавить URL-адрес репозитория в файл known_host, который автоматически создается в папке .ssh.
  • Теперь откройте jenkins и создайте новое задание. Затем нажмите на configure.
  • укажите URL-адрес клонирования в разделе Управление исходными кодами в разделе Git. URL-адрес должен начинаться с git @github.com/......... или ssh://proje........
  • В разделе "Учетные данные" вам необходимо добавить имя пользователя и пароль формы вашего репозитория, в которой вы клонируете проект. Выберите эти учетные данные.
  • Теперь примените и сохраните конфигурацию.
  • Бинго! Начните строить проект. Надеюсь, теперь вы не получите ошибку проверки ключа хоста!

Ответ 9

Try

ssh-keygen -R имя хоста

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

Ответ 10

Скопируйте ключи хоста как из bitbucket, так и из github:

ssh root @deployserver 'echo "$ (ssh-keyscan -t rsa, dsa bitbucket.org)" >>/root/.ssh/known_hosts' ssh root @deployserver 'echo "$ (ssh-keyscan -t rsa, dsa github.com) ">>/root/.ssh/known_hosts '

Ответ 11

  1. войдите как jenkins, используя: "sudo su -s/bin/bash jenkins"
  2. git клонирует нужный репозиторий, который вызывает ошибку ключа
  3. он попросит вас добавить ключ, указав Да/Нет (введите Да или У)

это!

Теперь вы можете перезапустить работу Дженкинса.

Я надеюсь, что это исправит вашу проблему.

Ответ 12

Я столкнулся с этой проблемой, и оказалось, что проблема в том, что служба jenkins не запускалась как пользователь jenkins. Так что запуск команд от имени пользователя jenkins работал просто отлично.

Ответ 13

Что касается обходного пути (например, ведомого устройства Windows), определите следующую переменную среды в глобальных свойствах:

GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"

Jenkins, Global properties, Environment variables, GIT_SSH_COMMAND

Примечание. Если вы не видите эту опцию, вам, вероятно, понадобится плагин EnvInject.