web-dev-qa-db-ja.com

GithubプライベートリポジトリのJenkins CIを認証する

JenkinsがGithubでホストされているプラ​​イベートリポジトリから自動的にデータを取得したいのですが。しかし、私はそのタスクを達成する方法がわかりません。jenkinsユーザー向けにssh-keyを生成し、ドキュメントを試してみました。 URLを確認しました-それらは有効です。

手がかりは、おそらくこの種のことを説明しているドキュメント/ブログ/何でも知っていますか?

132
bx2

おそらく、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に入れたものです。

(これが機能するためには、notssh://の前に置く必要があることに注意してください。)

136
Mark Longair

これが機能したことの1つは、github.com~jenkins/.ssh/known_hostsにあることを確認することです。

36
Edward Samson

Jenkinsが1つ以上のプロジェクトにアクセスする必要がある場合は、次のことを行う必要があります。
1。 1つのgithubユーザーアカウントに公開キーを追加する
2。このユーザーを所有者(すべてのプロジェクトにアクセスするため)またはすべてのプロジェクトの共同作業者として追加します。

GitHubは最初に一致したデプロイキーを検出し、 "エラー:user/repo2へのアクセス許可がuser/repo1に拒否されました"

http://help.github.com/ssh-issues/

13
Sergii Mostovyi

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から

6
Ray

Gitlabでも同様の問題がありました。 sshでログインできるユーザーを制限していたことがわかりました。これはgithubユーザーには影響しませんが、gitlab(など)の問題で人々がここに来た場合、/etc/ssh/sshd_configgit設定にAllowUsersを追加してください:

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
AllowUsers batman git
1
Jon