Честа неуспешна ssh връзка с github

Забелязвам, че задачите ми на jenkins се провалят често, но не постоянно. Може да е вътрешен проблем със защитната стена, но исках да проверя дали някой може да ме насочи към нещо, което не съм проверил досега. Задачите на jenkins включват: 1. git fetch & 2. git таг

Задачите или се провалят при #1, ако успеят при #1, понякога се провалят при #2. В противен случай работата е успешна.

Дневникът на конзолата, когато се провали на #1:

> git fetch --tags --progress [email protected]:myorganization/myproject +refs/heads/*:refs/remotes/origin/*
FATAL: Failed to fetch from [email protected]:myorganization/myproject
hudson.plugins.git.GitException: Failed to fetch from [email protected]:myorganization/myproject
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:627)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:865)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:890)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1259)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:622)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:528)
    at hudson.model.Run.execute(Run.java:1759)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress [email protected]:myorganization/myproject +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

И конзолният изход се проваля @ #2

Updated data_bag_item[dev::dev]
tagging git for env dev
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Error occured:
  AutoTagger::Git::Repo::GitCommandFailedError (AutoTagger::Git::Repo::GitCommandFailedError)
/opt/mount1/rvm/gems/ruby-2.1.1@oss/gems/auto_tagger-0.2.10/lib/auto_tagger/git/repo.rb:58:in `exec'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/gems/auto_tagger-0.2.10/lib/auto_tagger/git/ref_set.rb:36:in `fetch'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/gems/auto_tagger-0.2.10/lib/auto_tagger/base.rb:40:in `fetch'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/gems/auto_tagger-0.2.10/lib/auto_tagger/base.rb:33:in `create_ref'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/gems/auto_tagger-0.2.10/lib/auto_tagger/command_line.rb:49:in `execute'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/gems/auto_tagger-0.2.10/bin/autotag:5:in `<top (required)>'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/bin/autotag:23:in `load'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/bin/autotag:23:in `<main>'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/bin/ruby_executable_hooks:15:in `eval'
  /opt/mount1/rvm/gems/ruby-2.1.1@oss/bin/ruby_executable_hooks:15:in `<main>'
Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered

.. Имам 2 jenkins slave с този проблем, изграждам друг jenkins slave и 3-тият също показва подобен проблем. По-долу са нещата, които проверих:

  1. Потребителят на jenkins, който изпълнява заданието за изграждане, има правилния RSA частен ключ за публичния ключ в акаунта в github. Мога да направя ssh -T [email protected] съвсем добре.

    [jenkins@slave3 ~]$ ssh -T [email protected] Здравей, моя акаунт! Успешно се удостоверихте, но GitHub не предоставя достъп до обвивката.

  2. По-долу е файлът /home/jenkins/.ssh/config

    Хост github.com HostName github.com Потребител git IdentityFile ~/.ssh/myprivate-key StrictHostKeyChecking не

Опитах се да използвам порт 443 за ssh връзка, но изглежда мрежата ми не го харесва. Преди да променя конфигурационния файл да използва порт 443, тествам ръчно с командата

ssh -T -p 443 [email protected]
  1. Създадох основен шел скрипт и го оставих да се изпълнява на всеки 10 секунди. Открива неуспешни ssh връзки, но не толкова често, колкото срещам на jenkins.

Забележка: моля, не маркирайте това като дубликат. Потърсих някои от проблемите с връзката с github като тези:

Дженинс: Неуспешно свързване с хранилище

Не може да се удостовери с GitHub

Но те дори далеч не си приличат


person OK999    schedule 23.03.2015    source източник
comment
Току-що имах още една грешка в git fetch --tags --progress [email protected]:myorganization/myproject +refs/heads/*:refs/remotes/origin/* .. Така че отидох в jenkins slave, su към jenkins потребител и опита същата команда в дясното работно пространство. Неуспешно с времето за изчакване на връзката. Но е изненадващо, че тестът за ssh връзка с помощта на ssh -T [email protected] работи. Това сега нещо друго освен SSH връзките ли е?   -  person OK999    schedule 24.03.2015
comment
Как решихте този проблем?   -  person Deepak Patankar    schedule 30.10.2020