Назад | Перейти на главную страницу

Настройка jenkins с ошибкой bitbucket

У меня есть ключ ssh в ~ / .ssh / id_rsa.pub, когда я вхожу в систему как пользователь jenkins.

Я правильно импортировал это в битбакет, и он принял ключ.

Когда я пытаюсь сделать клон git (с правильным URL), я все равно получаю ....

Building in workspace /var/lib/jenkins/jobs/Google adwords/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Google adwords/workspace - hudson.remoting.LocalChannel@2c473996
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone git@bitbucket.org:DAVID99WORLD/assessme.git
hudson.plugins.git.GitException: Could not clone git@bitbucket.org:DAVID99WORLD/assessme.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:268)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1122)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
    at hudson.FilePath.act(FilePath.java:842)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin git@bitbucket.org:DAVID99WORLD/assessme.git /var/lib/jenkins/jobs/Google adwords/workspace" returned status code 128:
stdout: Cloning into '/var/lib/jenkins/jobs/Google adwords/workspace'...

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

Кто-нибудь знает причину, по которой это могло произойти? Согласно документации, которую я прочитал, ~ / .ssh - это правильный каталог в качестве пользователя jenkins для существования этого файла.

РЕДАКТИРОВАТЬ: у моего пользователя jenkins нет файла known_hosts в ~ / .ssh, но у моих корневых уровней есть - должно ли? Я могу сделать клон с моим пользователем jenkins, и он вообще не упоминает хост как пользователя jenkins.

У вас должен быть закрытый ключ, а не только открытый ключ. Если ваш открытый ключ id_rsa.pub, ваш закрытый ключ, вероятно, называется id_rsa.

Я полагаю, вы скопировали этот открытый ключ из какой-то другой системы (возможно, со своего локального рабочего стола)?

Вы можете скопировать соответствующий закрытый ключ в jenkins ~/.ssh каталог, или вы можете создать новую пару ключей для своего пользователя jenkins и импортировать этот открытый ключ в битбакет.

Чтобы создать новую пару ключей ssh:

cd ~/.ssh
ssh-keygen -t rsa

Это приведет к следующему результату:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkins/.ssh/id_rsa.
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.

Фактическая проблема заключалась в том, что сервер битбакета не был в моем списке известных хостов. Пришлось войти в систему как пользователь jenkins и снова выполнить клон git, это снова добавило URL-адрес битбакета к известным хостам.