GitLab / GitHub でそれぞれ SSH 鍵を使い分けるために準備したこと
現在の勤務先ではコードリポジトリ・CI/CD ツールとして GitLab を使っています。
プライベートのお勉強用に GitHub を使ってみようとおもったので、それぞれ別の SSH 鍵を使うように設定してみました。
実行環境
- macOS Big Sur 11.4
- MacBook Pro (13inch, M1, 2020)
設定
GitHub 用 SSH 鍵の作成
GitLab 用の SSH 鍵として ~/.ssh/id_rsa(.pub)
を作成済みなので、GitHub Docs の手順にしたがい新たに使用するキーのみ作成します。
Generating a new SSH key and adding it to the ssh-agent
$ ssh-keygen -t ed25519 -C "your_email@example.com" Generating public/private ed25519 key pair. Enter file in which to save the key (/Users/<User名>/.ssh/id_ed25519): /Users/<User名>/.sshid_ed25519.github.com ※ GitHub 用とわかりやすくするためにファイルを変更してます。 Enter passphrase (empty for no passphrase): ※パスフレーズを入力 Enter same passphrase again: ※パスフレーズを再入力
GitHub への SSH 公開鍵登録
続いて、作成した SSH 公開鍵を GitHub アカウントに登録します。
下記コマンドで SSH 公開鍵をクリップボードにコピーします。
$ pbcopy < ~/.ssh/id_ed25519.pub.github.com
GitHub 画面右上部のアイコン → Settings → SSH and GPG keys に飛んだあと、* New SSH key * をクリックしてから Key 欄に SSH 公開鍵をペーストします。
GitHub Docs にはスクリーンショット付きの手順があるのでわかりやすいです。
Adding a new SSH key to your GitHub account
~/.ssh/config の修正
接続先が GitHub の場合にのみ今回作成した SSH 鍵を使うよう、~/.ssh/config
に下記の設定を追記します。
Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519.github.com
動作確認
下記のコマンドを入力し GitHub への SSH 接続 を試します。
% ssh -T git@github.com Enter passphrase for key '/Users/<User名>/.ssh/id_ed25519.github.com': ※ SSH 鍵生成時に設定したパスフレーズを入力 Hi xiyegen! You've successfully authenticated, but GitHub does not provide shell access.
作成済みのリポジトリの git clone も試してみます。
$ git clone git@github.com:xiyegen/git-lesson.git Cloning into 'git-lesson'... remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (3/3), done. remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (4/4), done.
ちゃんと動いたようです。