2

/etc/sysconfig/hudson で「HUDSON_USER=myuser」として構成を変更することにより、カスタム ユーザーとして Hudson サービス (デーモン) を実行しています。SSH サーバーに、/home/myuser/.ssh に存在する RSA キーが追加されていることを確認しました。

「myuser」としてシステムにログインして以下のように Hudson を実行すると、動作し、git リポジトリからコードを取得できます。

nohup java -jar hudson.war --httpPort=8081 > /home/myuser/hudson.out 2>&1 &

Hudson デーモンを実行すると、ビルドの実行中に git リポジトリからソースを取得できず、次のログに Permission denied エラーが表示されます。

Started by user anonymous
Checkout:workspace / /home/myuser/.hudson/jobs/test/workspace - hudson.remoting.LocalChannel@6083969e
Using strategy: Default
Last Built Revision: Revision a0d97d4d7bf5ee08124f76e5eb98bab354754cad (origin/master)
Checkout:workspace / /home/myuser/.hudson/jobs/test/workspace - hudson.remoting.LocalChannel@6083969e
Fetching changes from the remote Git repository
Fetching upstream changes from ssh://myuser@10.10.10.10:20/home/git-repos/test-proj.git
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
ha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=ERROR:  (Underlying report) : Error performing command: /usr/bin/git fetch -t ssh://myuser@10.10.10.10:20/home/git-repos/test-proj.git +refs/heads/*:refs/remotes/origin/*
Command "/usr/bin/git fetch -t ssh://myuser@10.10.10.10:20/home/git-repos/test-proj.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: The remote end hung up unexpectedly

ha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=ERROR: Could not fetch from any repository
ha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=FATAL: Could not fetch from any repository
ha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=hudson.plugins.git.GitException: Could not fetch from any repository
        at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:887)
        at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:845)
        at hudson.FilePath.act(FilePath.java:758)
        at hudson.FilePath.act(FilePath.java:740)
        at hudson.plugins.git.GitSCM.gerRevisionToBuild(GitSCM.java:845)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:622)
        at hudson.model.AbstractProject.checkout(AbstractProject.java:1483)
        at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:507)
        at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
        at hudson.model.Run.run(Run.java:1366)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:145)
4

1 に答える 1

2

RSA キーをパスワードレスに変更し、Github サーバーに追加しました。hudson を init.d サービスとして実行しているときに、Git からソースをフェッチする問題を解決しました。

さらに、これは、HOW TO https://help.github.com/articles/generating-ssh-keysを検索しているすべての人のために、Github にキーを追加した方法です。

于 2012-11-01T10:12:57.520 に答える