ref. https://circleci.com/docs/ja/github-integration/#user-keys-and-deploy-keys
Checkout SSH Keys
Deploy Key
:リポジトリ固有の秘密鍵(デフォルトはリードオンリー)GitHub
対象リポジトリ > Settings
> Deploy Keys
にCircleCI
の名前で登録 例)
https://github.com/{{user}}/{{repository}}/settings/keys/settings/keys
User Key
:ユーザーのすべてのリポジトリにアクセスできる秘密鍵Settings
> SSH keys https://github.com/settings/keysAdditional SSH Keys
Set up Project
によってCircleCi
がSSH
キーペアを作成して、CircleCI
に秘密鍵を、GitHub
に公開鍵を自動で保存する。
上記で作成したSSH
キーペアは読み込み専用
(Read-only
)なので、GitHub
からPull
/Checkout
はできるが、Push
はできない。
CircleCI
> Project Settings
> SSH Keys
にDeploy Key
を登録 => CircleCI
に作成されるのは秘密鍵GitHub
対象リポジトリ > Settings
> Deploy Keys
にCircleCI
の名前で登録 => GitHub
に登録されるのは↑とペアの公開鍵ref.
新しいプロジェクトを追加するとき、CircleCI ではプロジェクトの Web ベース VCS (GitHub または Bitbucket) に対するデプロイ キーを作成します。 デプロイ キーは、リポジトリ固有の SSH 鍵です。 VCS として GitHub を使用している場合、GitHub に公開鍵を持たせ、CircleCI に秘密鍵を格納します。
GitにPush
するには
ビルドからリポジトリにプッシュするには、書き込みアクセス権のあるデプロイ キー (ユーザー キー) が必要です。 ユーザー キーの作成手順は、VCS によって異なります
GitHub
では、書き込みアクセス権のあるキーはPersonal access token
で作成できる。
↑で発行されたキー(秘密鍵になる)をCircleCI
に登録する。
CircleCI
の鍵を登録する場所は、SSH Keys
のAdditional SSH Keys
やEnvironment Variables
。
複数のリポジトリにPush
する場合などに、手動でデプロイキーを作成する方法は以下を参照。
https://circleci.com/docs/ja/2.0/gh-bb-integration/#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4-%E3%82%AD%E3%83%BC%E3%81%A8%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC-%E3%82%AD%E3%83%BC
複数のリポジトリにPush
する場合などに、手動でデプロイキーを作成する方法は以下を参照。
https://circleci.com/docs/ja/2.0/gh-bb-integration/#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4-%E3%82%AD%E3%83%BC%E3%81%A8%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC-%E3%82%AD%E3%83%BC
CircleCI
GitHub
リポジトリ以下のファイルを作成したと仮定して進める。
公開鍵 id_rsa.example.pub
をauthrized_key
へ追加する。
$ cat ~/.ssh/id_rsa.example.pub >> ~/.ssh/authorized_keys
秘密鍵をProject
のSSH
> Additional SSH Keys
に追加する。