4

Windows Server 2003 Enterprise で Git + OpenSSH を使用して Hudson をセットアップしましたが、しばらくは問題なく動作していました。その後、突然、クローン中に常に 12% でハングし始めました。ファイルが大きくなりすぎたのではないかと疑っていました。(他のすべてのマシン、Windows Server 2003 標準、Windows 7 Enterprise ではまだ正常に動作しています)、この 1 つのサーバーだけです。

そのため、OpenSSH の代わりに Putty に切り替えました。gitBash と gitExtensions からは機能しましたが、Hudson からはまだ失敗しています。plink の ssh キーの適切なロードに関していくつかの懸念があることを読んだので、キーを使用してパテをロードし、gitBASH から正常に動作するスクリプトに GIT_SSH を設定しましたが、Hudson ではまだ失敗します。

PUTTY を使用した失敗の出力は次のとおりです。

    Started by user anonymous
Checkout:workspace / <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/> - hudson.remoting.LocalChannel@1c57a92
Using strategy: Default
Last Built Revision: Revision 2a56d9738e7c0af810e70e2e2051c41bd44f4252 (origin/master) Checkout:workspace / <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/> - hudson.remoting.LocalChannel@1c57a92
GitAPI created
Cloning the remote Git repository
Cloning repository origin
$ C:\bin\Git\bin\git clone -o origin git@GITSERVER:project.git <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/>
ERROR: Error cloning remote repo 'origin' : Could not clone git@GITSERVER:project.git
ERROR: Cause: Error performing C:\bin\Git\bin\git clone -o origin git@GITSERVER:project.git <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/>
Command returned status code 128: Cloning into <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/...>
fatal: The remote end hung up unexpectedly

    Trying next repository
    ERROR: Could not clone repository
    FATAL: Could not clone
    hudson.plugins.git.GitException: Could not clone
     at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:809)
     at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:740)
     at hudson.FilePath.act(FilePath.java:756)
     at hudson.FilePath.act(FilePath.java:738)
     at hudson.plugins.git.GitSCM.checkout(GitSCM.java:740)
     at hudson.model.AbstractProject.checkout(AbstractProject.java:1171)
     at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:480)
     at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:412)
     at hudson.model.Run.run(Run.java:1362)
     at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
     at hudson.model.ResourceController.execute(ResourceController.java:88)
     at hudson.model.Executor.run(Executor.java:145)

SSH プロトコルが機能する限り、私たちは SSH プロトコルに厳密ではありません。誰かが openSSH で失敗する理由、または Hudson がパテやその他の解決策で失敗する理由を教えていただければ、とても感謝しています!!

4

4 に答える 4

1

openSSH が機能しない理由はわかりませんでしたが、最終的に PuTTY ですべてが機能するようになりました。

私の解決策は次のとおりです。myplink.bat という名前のバッチ ファイルを作成しました。このファイルは、秘密鍵を使用してパテを実行し、ページェントを実行する必要はありません。そのファイルの中には次のものがありました。

@echo off
c:\pathto\plink.exe -i c:\pathto\id_rsa.pub

gitbashプロンプトを開いてGIT_SSHをこのパスに変更すると、そのインスタンスでのみ機能します.gitbash用に永続的に設定するために、 c:\pathto\git\etc\profile を変更し、最後に追加しました:

export GIT_SSH=c:\pathto\myplink.bat

c:\pathto\git\cmd\git.cmd も変更し、次を追加しました。

@set GIT_SSH=c:\pathto\myplink.bat

これで git bash は修正されましたが、hudson はまだ失敗するため、hudson の環境が何らかの形で git 用に変更されていると思われます。次に、ハドソンで、ハドソンの管理に行きました->設定の構成->環境変数がチェックされていることを確認し、追加しました:名前: GIT_SSH 値: c:\pathto\myplink.bat

hudson サービスを再起動したところ、ようやく機能しました。

いずれかのパスにスペースがあると、問題が発生する可能性があることに注意してください。パスにスペースを空けるようにしてください。

これが、hudson+git+putty で問題を抱えている他の人に役立つことを願っています。

于 2011-01-19T22:35:09.430 に答える
0

以下を確認する必要があります。

  1. hudsonデーモンを実行したユーザーのsshキーを使用しています。たとえば、user = hudsonの場合、hudsonとしてログオンし、sshキーを生成する必要があります
  2. 正しい.ssh/id_rsa.pubファイルからサーバー(github、assembla)に公開鍵をロードしました。つまり、hudsonデーモンを実行したのと同じユーザー用です。
  3. サーバーのRSAフィンガープリントを.ssh/known_hostsファイルに追加しました
于 2011-05-28T05:50:25.983 に答える
0

Linux(Ubuntu)サーバーで実行しても同じ問題があります。このリンク (http://adhockery.blogspot.com/2009/11/git-and-hudson.html) で問題が解決しました。

以下のテキストはリンクからコピーされます。

Git にはユーザー名を設定する必要があり、Hudson のインストール時に Debian パッケージが作成する hudson ユーザーにはユーザー名がありません。sudo nano /etc/passwd を使用して Hudson,,, を hudson ユーザーのエントリに追加することで簡単に修正できます (自分のエントリを見ると、どこに移動する必要があるかがわかります)。

于 2011-10-19T03:25:03.537 に答える
0

git サーバーに公開鍵がありません。「git」としてログインしているときに、hudson サーバーからこれを行います。

ssh -v gitserver

出力を調べます。パスワードの入力を求められることはありません。

そうである場合、または他の問題がある場合は、ssh キーが設定されていません。

お役に立てれば

于 2011-01-19T21:45:14.523 に答える