jenkins git deposuna bağlanamıyor


11

Git depo URL'sini Jenkins'in erişebileceği bir şekilde yapılandıramıyorum.

"Proje> Yapılandır> Kaynak Kod Yönetimi" altında Havuz URL'sini "git @ store: repositories / testproject.git" olarak ayarladım

Bu hatayı alıyorum:

Failed to connect to repository : Command "/usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,password). 
fatal: Could not read from remote repository.

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

bu URL ile erişim bir kabukta çalışır:

jenkins@dilbert:~$ /usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.git
git@store's password: 
4fd35a4f528e2f2921a52cfd03918b7cbde3d253    refs/heads/master

Bir parola isteniyor ve işe yarıyor.

Aynı şifreyi Jenkins'teki kimlik bilgileriyle "git /" olarak ilişkilendirdim ve "git @ store /" komutunu da denedim. Hiçbiri işe yaramadı.

Lütfen bunun github değil, yerel bir git deposu hakkında olduğunu unutmayın.

Güncelleme:

pub anahtarını jenkins master'dan build slave'e eklemek, yapılandırmanın çalışmasına yardımcı oldu:

ssh-copy-id jenkins@dilbert

şimdi yapılar başarısız oluyor:

 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.origin.url git@store:repositories/testproject.git # timeout=10
Fetching upstream changes from git@store:repositories/testproject.git
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git -c core.askpass=true fetch --tags --progress git@store:repositories/testproject.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from git@store:repositories/testproject.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:735)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:983)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1016)
    at hudson.scm.SCM.checkout(SCM.java:484)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
    at hudson.model.Run.execute(Run.java:1751)
    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 "/usr/bin/git -c core.askpass=true fetch --tags --progress git@store:repositories/testproject.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

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

mağaza jenkins ustası, dilbert yapı köle. ustadan köle ssh çalışır.

jenkins@store:~$ ssh dilbert uptime
 16:06:21 up 3 days, 18:53, 13 users,  load average: 0,31, 0,38, 0,50

nasıl hata ayıklamak için herhangi bir fikir?

Yanıtlar:


5

kimlik doğrulama ssh. jenkins kullanıcısının genel ssh anahtarını git sunucunuzdaki git kullanıcısına eklediniz mi?

ssh-authentication kurulumuyla ilgili talimatlara ihtiyacınız varsa bana bildirin ve bu yayını burada düzenleyeceğim.

/DÜZENLE:

Çalıştırdığına sevindim. Ben yapılandırmanın ssh kısmında ayrıntılı bir el kitabı için resmi jenkins web sitesinde baktı, ama herhangi bir bulamadık.

işte hızlı bir genel bakış - ihtiyacınız olan şey bu ise bana bildirin.

  1. jenkins slave (bina makinesi) git-server'a (jenkins master) bağlanır
  2. inşaat makinesi jenkins kullanıcısı olarak çalışır (örn. jenkins @ dilbert: ~ $)
  3. git-server git kullanıcısı olarak çalışır (örneğin git @ store: ~ $)
  4. jenkins @ dilbert genel anahtarının git @ store yetkili_keylere yerleştirilmesi gerekir
  5. jenkins@dilbert:~/.ssh$ ssh-copy-id git@storejenkins @ dilbert ssh ortak anahtarını git sunucusuna kopyalamak için çalıştırın

ssh-key hangi kullanıcıların nereye eklediğini açıklayabilir misiniz?
— Jörg Beyer

Jenkins kullanıcı kendi pub-anahtar saklanan olmalıdır <Jenkins kullanıcı ev dir> / ssh / id_rsa.pub bu bir ihtiyaç eklenecek <git kullanıcı ev dir> / ssh / authorized_keys..
— kindaleek

"jenkins @ store: ~ / .ssh $ ssh-copy-id git @ store" yapıyorsa, yapılandırmayı kabul etmek için jenkins olsun (bu bir iyileştirmedir), ancak uzak bir jenkins kölesi üzerindeki bir yapı başarısız olur. Herhangi bir fikir?
— Jörg Beyer

okumak güzel. ne yazık ki, git ile deneyimim orada hemen hemen biter ... ama iş yerinde benzer bir sorun hatırlıyorum. şimdi yanlış olabilir, ama git-platformda bir kullanıcı (örneğin Joerg Beyer) olarak çalışmak zorunda, değil mi? lütfen oradaki izni doğrulayın (ait oldukları her grup için web arayüzündeki kullanıcı izinlerini değiştirebilirsiniz). test / EDIT için geliştiriciye ayarlamaya çalışın : uzak jenkins slave yazdınız - farklı bir anahtar çifti kullanıyorsa, genel anahtarı
— git'in yetkili_anahtarlarına bir

emin değil. Soruyu güncelledim. Nereye eklemek için hangi ssh anahtarına ihtiyacım var?
— Jörg Beyer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.