В настройках Jenkins отказано (publickey) - PullRequest
12 голосов
/ 29 июня 2011

Я настраиваю Jenkins на компьютере с Win 2008, и у меня возникают проблемы с настройкой Jenkins для подключения к GitHub. Я получаю следующую ошибку:

Command "git.exe fetch -t git@github.com:USER/REPO.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:950)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:908)
    at hudson.FilePath.act(FilePath.java:758)
    at hudson.FilePath.act(FilePath.java:740)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:908)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1184)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:537)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:425)
    at hudson.model.Run.run(Run.java:1376)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:175)

Вещи, которые я проверил

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

Настройки конфигурации Jenkins

  • Дженкинс 1,418
  • Плагин GitHub 0.5
  • Плагин Git 1.1.9

msysgit работает, но приглашение CMD не Когда я перехожу к действительному репо и выполняю команду из командной строки DOS, она также завершается неудачей.

Ты хоть представляешь, чего мне не хватает?

Спасибо за вашу помощь.

Ответы [ 4 ]

13 голосов
/ 04 августа 2011

Как я уже говорил, указание переменной окружения HOME является ключевым при использовании протокола ssh.
Поскольку Windows не имеет HOME, вам необходимо явно указать его в любом каталоге, который вы хотите.

Однако, Vestnik комментарии:

Я указал переопределить HOME на подчиненном узле Windows, чтобы указать его на C:\jenkins.
Я поставил правильный id_rsa под C:\jenkins\.ssh, но все еще имею эту проблему.
Мой подчиненный агент работает как служба под учетной записью SYSTEM.

Два совета:

  • вам нужно сделать так, чтобы ваш ведомый дисплей отображал 'set', чтобы проверить, определен ли HOME прииспользуется с учетной записью SYSTEM.
    Если это не так, это может означать, что вам нужно добавить эту переменную в «системные переменные среды», а не в «переменные среды пользователя».

display env from the job definition

  • Не забудьте иметь в каталоге %HOME%\.ssh и id_rsa, и id_rsa.pub: вам нужны как открытые, так и закрытые ключи ssh.(как упомянуто в " git clone с проблемой ssh ​​")

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

define custom variables

5 голосов
/ 16 ноября 2011

В jenkins есть два плагина, связанных с ssh, которые можно использовать: Публикация через SSH и Плагин Jenkins SSH .

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

Далее необходимо установить еще два плагина, которые будут использоваться вконфигурация проекта Плагин GitHub и Плагин Jenkins Git .

Плагин GitHub будет использоваться для установки Проект GitHub .Плагин Jenkins Git будет использоваться для установки «URL хранилища» и других вещей, таких как ветка и т. Д.

Все плагины доступны на вкладке, доступной в Диспетчере плагинов Jenkins.

Скопировано из моего блога, по теме :

Конфигурация Jenkins:Плагин Jenkins SSH предоставляет возможность устанавливать закрытый ключ для каждого хоста, второй плагин выполняет работу для глобального хоста.Если используется плагин Jenkins SSH, то в SSH удаленные хосты пишут хост, пользователя, пароль и путь к закрытому ключу.Если используется «Опубликовать через SSH», то в настройках SSH напишите ключевую фразу и вставьте закрытый ключ или укажите путь к нему.Конфигурация проекта:Проект GitHub https://github.com/GitUser/iOS-project/
* Управление исходным кодом-> Git-> -> Хранилища-> -> -> URL хранилища: git@github.com: GitUser / iOS-project.git- Вы должны настроить ветку или выбрать ветку по умолчанию -* Построить триггеры-> Опрос СКМ - Seted --> Расписание: * * * * ** Строить-> Выполненная оболочка

-> -> Command:  xcodebuild -target iOS-project -configuration AdHoc -sdk iphoneos5.0 clean
-> -> Command:  agvtool new-version -all $BUILD_NUMBER 
-> -> Command:  xcodebuild -target iOS-project -configuration AdHoc -sdk iphoneos5.0
-> -> Command:  xcrun -sdk iphoneos5.0 PackageApplication -v $WORKSPACE/build/AdHoc-iphoneos/iOS-project.app -o  $WORKSPACE/build/AdHoc-iphoneos/iOS-project-$BUILD_NUMBER.ipa PROVISIONING_PROFILE="<provisioning profile>" 
-> -> Command:  curl http://testflightapp.com/api/builds.json -F file=@$WORKSPACE/build/AdHoc-iphoneos/iCushion-1.0-$BUILD_NUMBER.ipa -F api_token=<api_token> -F team_token=<team_token> -F notes="This is an autodeploy build from Jenkins!" -F notify=True -F distribution_lists="<distributedlist 1>, <distributedlist 2>"
0 голосов
/ 30 ноября 2016

В моей среде (64-битная версия Jenkins с 32-битной Java, работающая в 64-битной версии Windows Server 2016) решение было помещено в ключ C: \ Windows \ SysWOW64 \ config \ systemprofile \.ssh папка.Согласно документации Git Plugin :

По умолчанию установщик Jenkins для Windows настраивает Jenkins для запуска в качестве службы в Windows, которая работает как «учетная запись локальной системы»,НЕ ваша учетная запись пользователя.Поскольку «Локальная системная учетная запись» не имеет ключей SSH или настроенных known_hosts, «git clone» будет зависать во время сборки.Возможно, чтобы Jenkins работал как «Локальная системная учетная запись» и клонировать репозитории через SSH, убедившись, что «Локальная системная учетная запись» настроена с правильно настроенным каталогом .ssh (т.е. id_rsa, id_rsa.pub и AND known_hosts)1008 *

0 голосов
/ 04 июня 2015

Похоже, что плагин git теперь позволяет указать Jenkins в домашний каталог.

  1. Нажмите кнопку добавления учетных данных.

enter image description here

Укажите Дженкинса на ваш личный ключ.

enter image description here

Выберите новые учетные данные из списка.

enter image description here

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