🔧

【Jenkins】GitのSSH接続をするための認証情報を設定する【GitHub】

に公開

はじめに

JenkinsでGitHubのプライベートリポジトリを扱う際に必要な、SSHで認証を通すための手順を紹介します。特に、秘密鍵の「直接入力」が分からなくてハマりました。。。

内容はWin/Macでほぼ共通です。

手順

(SSHをまだ作っていない場合)

# SSHキーの作成
# 「ユーザー名」「パスワード」「パスワード(確認)」と3回入力を求められるが、
# 全て空白(そのままエンター)でもOK
$ ssh-keygen

# 公開鍵をGitHubに登録
# 公開鍵をクリップボードにコピー(Macの場合)
$ pbcopy < ~/.ssh/id_rsa.pub
# 公開鍵をクリップボードにコピー(Winの場合)
$ clip < ~/.ssh/id_rsa.pub

GitHubの Settings > SSH and GPG keys にアクセスし、「New SSH key」から先ほどクリップボードにコピーした内容を貼り付ける。名前は適当でOK。

# 接続確認
$ ssh -T git@github.com

Hi!って言われたら完了

Jenkinsで認証情報を設定

ソースコード管理でGitを選択し、「リポジトリURL」に扱いたいリポジトリのURLを入れる(git@github:[GitHubユーザー名]/[リポジトリ名]形式のもの)

認証情報の右側のボタンから「追加」をクリックして下記のような画面にする。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f35353336352f34313734313035622d643531312d656163612d383836342d6335346534646362383966382e706e67.png

下記のように入力する。

項目 内容
Domain グローバルドメイン
種類 SSHユーザー名と秘密鍵
スコープ グローバル
ID 区別するためのものなのでなんでもいい
説明 なんでもいい
ユーザー名 認証情報の選択画面ででる名前
秘密鍵 後述
パスフレーズ $ ssh-keygenで設定したパスワード

秘密鍵を直接入力する

あるバージョンから「直接入力」しか選択できなくなったようです。入力する内容は「秘密鍵の内容」です。「秘密鍵のパス」ではないので注意してください。

# 秘密鍵をクリップボードにコピー(Macの場合)
$ pbcopy < ~/.ssh/id_rsa
# 秘密鍵をクリップボードにコピー(Winの場合)
$ clip < ~/.ssh/id_rsa

上記コマンドでコピーしたのち、入力欄にペーストしてください。

最後に追加ボタンを押してください。

認証情報を選択する

追加しただけだと認証情報が適用されていません。認証情報のプルダウンに先ほど追加した項目が追加されていると思うので、それを選択してください。Jenkinsが自動的に接続確認コマンドを叩いてくれるので、数秒待って赤いエラー表示がされなければ完了です。

参考

JenkinsでCI環境構築事始め

Discussion