JenkinsがGithubでホストされているプライベートリポジトリから自動的にデータを取得したいのですが。しかし、私はそのタスクを達成する方法がわかりません。jenkinsユーザー向けにssh-keyを生成し、ドキュメントを試してみました。 URLを確認しました-それらは有効です。
手がかりは、おそらくこの種のことを説明しているドキュメント/ブログ/何でも知っていますか?
おそらく、GitHubの キーの展開 のサポートがお探しですか?そのページを引用するには:
デプロイキーはいつ使用する必要がありますか?
シンプル。単一のプライベートリポジトリへのプルアクセスが必要なサーバーがある場合。このキーは、個人ユーザーアカウントではなく、リポジトリに直接添付されます。
それが既に試みているもので、それが機能しない場合は、使用されているURLの詳細、キーファイルの名前と場所などで質問を更新することをお勧めします。
技術的な部分:JenkinsでSSHキーを使用する方法は?
たとえば、jenkins
unixユーザーがいる場合、~/.ssh/id_rsa
にデプロイキーを保存できます。 Jenkinsがssh経由でレポのクローンを作成しようとすると、そのキーを使用しようとします。
一部のセットアップでは、Jenkinsを独自のユーザーアカウントとして実行できず、デフォルトのsshキーの場所~/.ssh/id_rsa
も使用できない場合があります。そのような場合、別の場所にキーを作成できます。 ~/.ssh/deploy_key
、および~/.ssh/config
のエントリでそれを使用するようにssh
を構成します。
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
[email protected]
を使用してすべてのGithubリポジトリに対して認証を行い、Githubへのすべての接続に上記のキーを使用したくないため、ホストエイリアスgithub-deploy-myprojectを作成しました。クローンURLは次のようになります
git clone github-deploy-myproject:myuser/myproject
また、それはリポジトリURLとしてJenkinsに入れたものです。
(これが機能するためには、notをssh://の前に置く必要があることに注意してください。)
これが機能したことの1つは、github.com
が~jenkins/.ssh/known_hosts
にあることを確認することです。
Jenkinsが1つ以上のプロジェクトにアクセスする必要がある場合は、次のことを行う必要があります。
1。 1つのgithubユーザーアカウントに公開キーを追加する
2。このユーザーを所有者(すべてのプロジェクトにアクセスするため)またはすべてのプロジェクトの共同作業者として追加します。
GitHubは最初に一致したデプロイキーを検出し、 "エラー:user/repo2へのアクセス許可がuser/repo1に拒否されました"
Jenkinsは、システム上にユーザーJenkinsを作成します。 Jenkinsユーザー用にsshキーを生成する必要があります。手順は次のとおりです。
Sudo su jenkins -s /bin/bash
cd ~
mkdir .ssh // may already exist
cd .ssh
ssh-keygen
SSHキーを使用してJenkins資格情報を作成できるようになりましたJenkinsダッシュボードで資格情報を追加
このオプションを選択
秘密鍵:Jenkinsマスター〜/ .sshから
Gitlabでも同様の問題がありました。 sshでログインできるユーザーを制限していたことがわかりました。これはgithubユーザーには影響しませんが、gitlab(など)の問題で人々がここに来た場合、/etc/ssh/sshd_config
のgit
設定にAllowUsers
を追加してください:
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
AllowUsers batman git