LoginSignup
53
26

More than 3 years have passed since last update.

Circle CI で Github に write access 可能な Deploy key を設定する

Last updated at Posted at 2018-11-30

Github のリポジトリと Circle CI のプロジェクトは作成済みとします。

手順

秘密鍵/公開鍵を生成する

CircleCIで使う場合の注意点としては

  • フォーマットはPEMである必要がある
  • パスフレーズはなしにする必要がある

また、Github の Deploy Key は他のリポジトリやユーザに登録された公開鍵を登録できないためリポジトリ毎に生成する必要があります。

下記コマンドで作成

ssh-keygen -t rsa -b 4096 -m pem -C "CircleCI" -f id_rsa_circleci -N ""

-C はコメントなのでなんでも構わない。公開鍵の末尾に出力されるので中身を確認したとき、わかりやすくするために入れる。
-f は出力するファイル名。相対パス、絶対パスで指定可能。
ファイル名を変えた場合は以降の手順をそのファイル名で読み替えてください。

これで秘密鍵 id_rsa_circleci と公開鍵 id_rsa_circleci.pub が出来上がる

公開鍵をGithubに登録する

  1. https://github.com/(ユーザ or 組織)/(対象リポジトリ)/settings/keys へ行き Add deploy key を押す。
  2. 下記を入力
    • [Title] わかりやすい名前 ※空だと ssh-keygen の -C オプションで指定した内容が入る
    • [Key] 公開鍵 id_rsa_circleci.pub の内容
    • [Allow write access] チェックを入れる
  3. Add key を押す

Allow write access のチェックを入れ忘れたら一回削除して登録し直してください。

秘密鍵を Circle CI に登録する

  1. https://circleci.com/gh/(ユーザ or 組織)/(対象リポジトリ)/edit から SSH Permissions へ行く
  2. Add SSH Key を押す
  3. 下記を入力
    • [Hostname] Github.com
    • [Private Key] 秘密鍵 id_rsa_circleci の内容
  4. Add SSH Key を押す

これで登録完了。

自動生成された 鍵を削除する

Readonlyの鍵が使われてしまうので削除する

  1. https://circleci.com/gh/(ユーザ or 組織)/(対象リポジトリ)/edit から Checkout SSH Permissions へ行く
  2. 登録済みの鍵を Remove する

以上です。

Github側に自動登録されたReadonlyの鍵も一応消しておいたほうが良いでしょう。

この記事を書いたきっかけ

「秘密鍵を Circle CI に登録する」の際に何故か登録できない現象に遭遇したためです。

2019-06-22 追記:
エラーメッセージがブラウザ上に表示されるようになり、少しだけわかりやすくなりました。
現象としては Add SSH Key ボタンを押すと Failed とだけ出る。
開発者ツールで見ると {"message":"it looks like private key is invalid key. Double check"} というエラーが。

現象としてはAdd SSH Key ボタンを押すと下記のメッセージが出ます。
It looks like this private key is invalid. Please check if you have pasted the right key. If you are sure your key is valid, please contact support for assistance.

によると PEM 形式である必要があるとのこと
ssh-keygen は -mオプション指定なしだとデフォルトでRFC4716形式になるそうです。

公式ドキュメントにも PEM で作れとありました。
https://circleci.com/docs/2.0/add-ssh-key/

同じエラーで嵌った人の役に立てれば

53
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
26