Slave Windows Jenkins не использует правильные учетные данные для git - PullRequest
0 голосов
/ 04 октября 2018

У меня есть мастер Jenkins (Ubuntu), который использует ведомое устройство Windows для создания приложения UWP.Когда он пытается запустить git fetch, я получаю следующую ошибку: -

git fetch --tags --progress git@gitlab.com:user/repo.git +refs/heads/*:refs/remotes/origin/*
23:24:08 ERROR: Error fetching remote repo 'origin'
23:24:08 hudson.plugins.git.GitException: Failed to fetch from git@gitlab.com:user/repo.git
23:24:08    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:803)
23:24:08    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1063)
23:24:08    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1094)
23:24:08    at hudson.scm.SCM.checkout(SCM.java:495)
23:24:08    at hudson.model.AbstractProject.checkout(AbstractProject.java:1276)
23:24:08    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:560)
23:24:08    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
23:24:08    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:485)
23:24:08    at hudson.model.Run.execute(Run.java:1735)
23:24:08    at hudson.matrix.MatrixRun.run(MatrixRun.java:153)
23:24:08    at hudson.model.ResourceController.execute(ResourceController.java:97)
23:24:08    at hudson.model.Executor.run(Executor.java:405)
23:24:08 Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress git@gitlab.com:user/repo.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
23:24:08 stdout: 
23:24:08 stderr: jenkins_user@gitlab.com: Permission denied (publickey).
23:24:08 fatal: Could not read from remote repository.

Кажется, он использует неправильный адрес электронной почты для получения хранилища.Это должен быть jenkins_user@domain.com, а не @ gitlab.com, но даже если я сделаю git config --global user.email jenkins_user@domain.com, он все равно выдаст ту же ошибку.

1 Ответ

0 голосов
/ 04 октября 2018

Вероятно, это не относится к конфигурации user.email в вашем локальном репозитории.

Когда jenkins slave установлен в качестве службы Windows (чтобы агент работал, даже если никто не входит в систему на компьютере), пользовательдвоичный файл jenkins - это учетная запись локальной системы.Вы должны создать пару открытого и закрытого ключей SSH и поместить ее в нужную папку на вашем компьютере:

C:\Windows\system32\config\systemprofile\.ssh

Вам также необходимо скопировать правильный файл known_hosts, чтобы обеспечить первый git pull будет работать без запроса ввода yes в командной строке (невозможно из задания jenkins).

Предупреждение: В большинстве случаев, когда Центр обновления Windows выполняет обновление системы, этоПапка очищена, и вы потеряли свой ключ.Вам нужно будет сохранить файлы в другом месте, чтобы гарантировать, что вы сможете восстановить их после обновления.

См. этот пост для получения дополнительной информации или выполните поиск по запросу "ssh key local system account" на вашем компьютере.предпочитаемый поисковик.

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