2012-04-17 17 views
11

私は最初のJenkinsのスレーブを設定しました。私はビルドを実行し、私はSSHのキーで問題を打つ。 マスターJenkinsサーバーがユーザー 'jenkins'のもとで実行されています。私はパスワードなしでマスターからスレーブにSSHできるようにSSHキーを設定しました。Jenkins - スレーブノードからクローンをgitできません。 SSHキー

マスターから:

[email protected]:~$ ssh slave 
Last login: Tue Apr 17 10:30:22 2012 from masterjenkins.com 
$ whoami 
jenkins 

だから、スレーブノードはまた、「ジェンキンス」ユーザで実行されていることを証明しています。 (私はjenkins @ slaveからリモートのgitサーバにパブリックssh鍵をコピーしました)。そして私は、スレーブから手動でgitのクローンを発行できるが、私はマスターからビルドをキックオフするとき、私は、メッセージのこれらの種類を取得:

ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:abc 
hudson.plugins.git.GitException: Could not clone [email protected]:abc 
Caused by: hudson.plugins.git.GitException: Error performing command: git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build 
Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 
Trying next repository 
ERROR: Could not clone repository 
FATAL: Could not clone 

だからまだ私のSSHキーが設定されていないことをほのめかしています正しくアップ。 誰かどこにコピーする必要があるのか​​教えていただけますか?

多くのおかげで、あなたが二つの異なる認証方式を混合している表示されますクローンURLに基​​づいて NS

+1

また、ホスト鍵の確認に失敗した場合は、Jenkinsユーザがそのサーバにssh接続されたことがなく、ホスト鍵を受け入れていないことを示すように見えるので、jenkinsユーザとしてCLIからsshを試して、ホストキー – Doon

+0

@Doonこれは問題となる可能性があります。私はもともと、ジェンキンスが複製しようとしているのと同じマシンからsshを実行しようとしていると思っていました。 –

+0

悪魔を手に入れました!すべてのあなたのご意見ありがとうございます。 jenkinsがスレーブ上で実行しようとしていたコマンドをコピーして貼り付けました: git clone --progress -o origin git @ host:abc/var/lib/jenkins/workspace/abc in /root/.ssh/known_hosts これらを削除してもう一度git repoに接続すると、うまくいきました! – nonshatter

答えて

5

。ユーザgitjenkinsではないため、ホストにSSHしようとしています。通常、自分のGITリポジトリをホストし、git @ servername:reponameでクローンするときは、gitoliteのようなものを使用します。

ギトライトのようなものを設定しましたか?

代わりにjenkinsユーザーと同じようにssh'ingしてみてください。

ssh [email protected] 

次に返される内容を確認してください。これはあなたがやっている[email protected]:abcに沿ったSSHです。これは、すべてオンになっている(:

あなたは、サーバー・マシン上の他のdidntのセットアップは何も、このようなエントリが必要です[email protected]:pathtorepo

更新

/home/git/.ssh/authorized_keys

にあなたのクローンのURLを変更した場合ONE行)

# gitolite start 
command="/home/git/bin/gl-auth-command jenkins",no 
-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAt3+od84Gc9NBVrVb3MKjekHcBDwXXONnVYMNVpuRadoz/FPJTkOIxozKVPJDPI670O252giYpF59sOKqAJL0xEVUrhq8cDFuFwQsSAp0ed1kp/GRxx+pwytL58rcVJEHAy2DkD1z5HlNaZyvIxQyfLTnYfuL1Hx6Qe7dal7mXO0= keycomment 
# gitolite end 

リポジトリの許可を追加gitoliteでジェンキンスへのイオン: (あなたはgitoliteユーザとして、あなたのリポジトリをホストしている同じマシン上でクローンを作成する必要があります)

git clone [email protected]:gitolite-admin 
cd gitolite-admin 
cd conf 
vi gitolite.conf 

今「ABC」のエントリを見つけたり、それはdoesnの場合は、1つを追加」トン

repo abc 
    RW+   = jenkins 

存在今コミットし、プッシュは

git commit -a -m "Adding user jenkins to repo abc" 
git push 

今gitoliteはあなたの新しい権限について説明しますかどうかを確認するためにもう一度ssh [email protected]を行う変わります。

+0

こんにちは、申し訳ありません。gitユーザーを管理するためにgitoliteを使用していることを追加するのを忘れました。 ssh git @ slaveがパスワードを要求するだけで、マスターからスレーブにssh'ingします。 私に迷惑をかけていることの1つは、ジェンキンがスレーブとして実行されているかどうかを簡単に知ることができないことです。スレーブにログオンすると、私はssh-keygenを実行し、デフォルトの場所/home/jenkins/.ssh/id_rsaにファイルを保存しました。 私は公開鍵をgitoliteにコピーしました。 – nonshatter

+0

@nonshatterこれは、ギトライトなどが正しく設定されていないことを意味します。 authorized_keysがサーバーで正しく設定されていることを確認してください。私はgitlabを使って私のgitoliteのインスタンスを管理しています。パスワードなしでgit @ hostを正常にsshできるようになるまで、クローンは機能しません。最初に確認するのは、 'git'ユーザ用のサーバ上のauthorized_keysとあなたのjenkinsが正しい公開鍵で名前を付けることです。スレーブから –

+0

: $ sshのはgit @ホスト PTYの割り当て要求がチャネル上で0 ハロージェンキンスを失敗した が '、これはgitolite v2.1-31-gf0cedebは、gitoliteの設定はあなたに以下のアクセスを提供しますgitの1.7.0.4 上で実行されています: @R_ @W_ \tテスト RW \t abc ホストへの接続が閉じられました。 – nonshatter

関連する問題