11

最初のJenkinsスレーブをセットアップしました。ビルドを実行しましたが、SSHキーで問題が発生しました。マスターJenkinsサーバーはユーザー「jenkins」で実行されています。パスワードなしでマスターからスレーブにSSHで接続できるようにSSHキーを設定しました。

例:マスターから:

jenkins@master:~$ ssh slave
Last login: Tue Apr 17 10:30:22 2012 from masterjenkins.com
$ whoami
jenkins

つまり、スレーブノードも「jenkins」ユーザーの下で実行されていることがわかります。(公開sshキーをjenkins @ slaveからリモートgitサーバーにコピーしました)。また、スレーブから手動でgit cloneを発行することはできますが、マスターからビルドを開始すると、次のようなメッセージが表示されます。

    ERROR: Error cloning remote repo 'origin' : Could not clone git@host:abc
hudson.plugins.git.GitException: Could not clone git@host:abc
Caused by: hudson.plugins.git.GitException: Error performing command: git clone --progress -o origin git@host:abc /var/lib/jenkins/workspace/abc_build
Command "git clone --progress -o origin git@host: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 git@host: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キーが正しく設定されていないことを示唆しています。どこにコピーする必要があるキーを教えてもらえますか?

どうもありがとう、 ns

4

1 に答える 1

5

クローンURLに基​​づくと、2つの異なる認証方法を混同しているようです。gitユーザーとしてではなく、ホストにSSHで接続しようとしていますjenkins。通常、独自のGITリポジトリをホストし、git @ servername:reponameを使用してクローンを作成する場合は、gitoliteなどを使用します。

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

代わりに、jenkinsユーザーとしてこのようにsshを実行してみてください。

ssh git@slave 

次に、それが何を返すかを確認します。これはあなたがしていることにもっと一致したSSHgit@host:abcです。

サーバーマシンで他に何もセットアップしなかった場合は、クローンのURLを次のように変更します。jenkins@host:pathtorepo

アップデート

/home/git/.ssh/authorized_keys

次のようなエントリが必要です:(これはすべて1行にあります)

# 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のjenkinsにリポジトリ権限を追加します:(リポジトリをホストしているのと同じマシンで、gitoliteユーザーとしてクローンを作成する必要がある場合があります)

git clone git@host:gitolite-admin 
cd gitolite-admin
cd conf
vi gitolite.conf

ここで、「abc」のエントリを見つけるか、存在しない場合は追加します

repo    abc
  RW+            = jenkins

変更をコミットしてプッシュします

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

ここでもうssh git@host一度やり直して、gitoliteが新しい権限について教えてくれるかどうかを確認します。

于 2012-04-17T12:17:19.180 に答える