Ошибка проверки ключа хоста 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
Если проблема не возникает, теперь дженкинс сможет подключить репо (по крайней мере, для меня ^^)
Ответ 5
используя https://bitbucket.org/YYYY/XX.git
Вы должны удалить имя пользователя @
Ответ 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
- войдите как jenkins, используя: "sudo su -s/bin/bash jenkins"
- git клонирует нужный репозиторий, который вызывает ошибку ключа
- он попросит вас добавить ключ, указав Да/Нет (введите Да или У)
это!
Теперь вы можете перезапустить работу Дженкинса.
Я надеюсь, что это исправит вашу проблему.
Ответ 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.