[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について、そしてそれをシェル起動スクリプトに結び付けて、すべてのコマンドにパスワードを入力する必要がないようにする方法について読んだことがあります。これがここに関連するかどうかはわかりません。
そうでなければ、他に何を試すことができるかわかりません。ヒントは役に立ちます!