5

[Update2]では、CLIからgitを実行すると、パスワードの入力を求められても大丈夫ですか?ssh秘密鍵のパスフレーズを使用してgithubサーバーにアクセスできますが、Jenkinsでこれを求められたり、提供を求められたりすることはありません。[/ Update2]

[更新]はい。EC2のubuntuインスタンスでこれを実行しています。Jenkinsが作成するユーザーである/var/lib/jenkins/.sshにsshキーを生成しました。Unixユーザー/グループを使用するようにJenkinsのセキュリティオプションを設定しました。[/アップデート]

Jenkinsにgit(github)からプルさせようとしています。次のエラーが発生します。

hudson.plugins.git.GitException: Could not clone [my personal repo]
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:245)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1121)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1063)
    at hudson.FilePath.act(FilePath.java:832)
    at hudson.FilePath.act(FilePath.java:814)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1063)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1218)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470)
    at hudson.model.Run.run(Run.java:1434)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:239)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin git@github.com:bobbylo/Verbify.git /var/lib/jenkins/.jenkins/jobs/build_dev/workspace" returned status code 128:
stdout: Initialized empty Git repository in /var/lib/jenkins/.jenkins/jobs/build_dev/workspace/.git/

stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

私はすでにGithubsshチュートリアルを完了しました。EC2インスタンスで秘密鍵を生成しました。ユーザーjenkinsの.sshディレクトリに配置しました。公開鍵をGithubに配置しました(Deploy Keyと通常のSSHKeyの両方を試しました)。git over-the-wire操作(プル、クローンなど)を実行できること、およびCLIからユーザーと一緒に機能することを確認しました。ユーザーに対してUNIXユーザー/グループのアクセス許可を正しく設定しました(実際、変更すると、Jenkinのコンソールログにエラーログの変更が表示されます)。Jenkin gitプラグインを使用しようとしたり、Jenkinsシェルコマンドを実行しようとすると、上記のエラーが発生します。

ssh-agentとssh-addについて、そしてそれをシェル起動スクリプトに結び付けて、すべてのコマンドにパスワードを入力する必要がないようにする方法について読んだことがあります。これがここに関連するかどうかはわかりません。

そうでなければ、他に何を試すことができるかわかりません。ヒントは役に立ちます!

4

3 に答える 3

4

理解した:

-デーモンとして実行していない場合は、実行したシェル環境を使用していることがわかります。-また、ユーザープロンプトを必要とするcmd(ssh言い換えなど)も判明します。Jenkinsはエラーとして扱います。

今のところ解決策は次のとおりです。

-ssh-addを介してgithubpubキーをssh-agentに追加した後、Jenkinsを実行して、言い換えのプロンプトが表示されないようにします。

Jenkinsをデーモンプロセスとして実行したい場合は、実行する前にssh-agentを正しく設定する必要があると思います(現在のシェル環境を使用しているとは思いませんか?)。

于 2012-05-04T20:25:19.393 に答える
0

Jenkinsが期待どおりのユーザーとして実行されていることを確認しますか?Jenkinsをサービスとして実行する場合、通常はユーザー「ローカルシステムアカウント」として起動します。

これは役立つ場合があります:https ://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin 。「msysgitWindowsインストーラにバンドルされているOpenSSHを使用するためのJenkinsの設定」のセクションを参照してください。

また、これは私を助けました:

http://computercamp.cdwilson.us/jenkins-git-clone-via-ssh-on-windows-7-x64

于 2012-05-04T09:56:02.467 に答える
0

同様の問題に直面していたのは、jenkinsインストールの一部として作成されたユーザー「jenkins」としてログインした後にデプロイキーが生成され、公開キーをコピーした後にjenkinsサーバーを再起動することだけでした。 githubのデプロイキーで。

于 2012-09-10T09:32:34.633 に答える