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.