回答:
おそらく、GitHubの展開キーのサポートがあなたが探しているものでしょうか?そのページを引用するには:
いつデプロイキーを使用する必要がありますか?
単純、単一のプライベートリポジトリへのプルアクセスが必要なサーバーがある場合。このキーは、個人のユーザーアカウントではなく、リポジトリに直接添付されます。
それでも問題が解決されない場合は、使用しているURLの詳細、キーファイルの名前と場所などで質問を更新することをお勧めします。
では、技術的な部分について説明します。JenkinsでSSHキーを使用するにはどうすればよいですか。
たとえば、jenkins
UNIXユーザーがいる場合は、デプロイキーをに保存できます~/.ssh/id_rsa
。Jenkinsがssh経由でリポジトリのクローンを作成しようとすると、そのキーを使用しようとします。
一部の設定では、Jenkinsを独自のユーザーアカウントとして実行できず、デフォルトのsshキーの場所も使用できない場合があります~/.ssh/id_rsa
。このような場合は、別の場所(例:)~/.ssh/deploy_key
にキーを作成し、ssh
それをのエントリで使用するように構成できます~/.ssh/config
。
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
を使用してすべてのGithubリポジトリに対して認証をgit@github.com
行い、上記のキーをGithubへのすべての接続に使用したくないので、ホストエイリアスgithub-deploy-myprojectを作成しました。クローンURLは次のようになります
git clone github-deploy-myproject:myuser/myproject
これは、リポジトリURLとしてJenkinsに配置するものでもあります。
(これが機能するために、ssh://を前に置かないでください。)
ssh-keygen
、Jenkins が実行しているユーザー(私のUbuntuサーバーでは「jenkins」)として実行されています。次に~jenkins/.ssh/id_rsa.pub
、github上のリポジトリーのデプロイキーセクションに追加しました。
~
ディレクトリに配置しないでください。しかし/var/lib/jenkins/.ssh/
、デフォルトのjenkinsユーザーがこれらのキーを使用できるようにします。
/var/lib/jenkins
は、それがユーザーのホームディレクトリ(~
)であることに注意してくださいjenkins
。
Could not match github-deploy-myproject:myuser/myproject
たエラーが表示されます。Repo URLとビルドが機能するように入力したので、GitHubにアクセスできます。ビルドをトリガーできないのは、GitHubからの投稿だけです。
これを機能させる1つのことは、それがにあることを確認することgithub.com
です~jenkins/.ssh/known_hosts
。
Jenkinsが1つ以上のプロジェクトにアクセスする必要がある場合:
1.公開鍵を1つのgithubユーザーアカウントに
追加する2.このユーザーを所有者(すべてのプロジェクトにアクセスする)またはすべてのプロジェクトのコラボレーターとして追加する。
GitHubが最初に一致したデプロイキーを見つけ、「ERROR:Permission to user / repo2 denied to user / repo1」のようなエラーを返すため、1人のシステムユーザーの多くの公開鍵は機能しません。
別のオプションは、GitHubパーソナルアクセストークンを使用することです。
https://github.com/my-username/my-project.git
)。github-token-for-my-username
これをJenkins ver。でテストしました。2.222.1およびJenkins GitHubプラグイン1.29.5(プライベートGitHubリポジトリを使用)。
sergey_moからの回答の代わりに、jenkinsサーバーに複数のsshキーを作成します。
(sergey_moの回答の最初のコメント投稿者が言ったように、これは結局、単一のキーペアを管理するよりも苦痛になるかもしれません。)