🔑
GitHubアカウントを複数運用のための準備
やりたいこと
Githubのアカウントを仕事とプライベートで2つ以上運用する準備
環境 🌎
環境ははMac 💻 になります。
鍵ペアの生成 🔑
新規でGitHubアカウントを作成するために秘密鍵と公開鍵のペアを生成します。
秘密鍵と公開鍵の違い 🔐
-
秘密鍵 (id_rsa): サーバーにログインするための鍵で、厳重に管理する必要があります。漏洩すると、アカウント乗っ取りなどの被害に繋がる恐れがあります。 -
公開鍵 (id_rsa.pub): 秘密鍵に対応する鍵で、サーバに登録することで、パスワード認証ではなく鍵認証でのログインが可能になります。公開鍵自体は漏洩しても問題ありませんが、秘密鍵と間違えて公開しないように注意する必要があります。
Shell
$ cd ~/.ssh
$ ssh-keygen -f id_rsa_{アカウント名}
上記コマンドを実行すると、id_rsa_{アカウント名} (例: id_rsa_personal) と id_rsa_{アカウント名}.pub (例: id_rsa_personal.pub) というファイルが生成されます。
-
id_rsa_{アカウント名}: 秘密鍵 (厳重に管理する) -
id_rsa_{アカウント名}.pub: 公開鍵 (GitHub に登録する)
~/.ssh/config ファイルの設定
~/.ssh/config ファイルに、各アカウントの設定を追加します。
~/.ssh/config
Host github_{アカウント名}
IdentityFile ~/.ssh/id_rsa_{アカウント名}
HostName github.com
上記はテンプレートです。以下の部分を自分の環境に合わせて置き換えてください。
-
{アカウント名}: アカウント名 -
{パス}: 秘密鍵のパス (例: ~/.ssh/id_rsa_{アカウント名})
複数のアカウント設定を追加する場合は、それぞれ異なる Host ブロックで記述します。
config(例)
Host github_{アカウント名_1}
IdentityFile ~/.ssh/id_rsa_{アカウント名_1}
HostName github.com
Host github_{アカウント名_2}
IdentityFile ~/.ssh/id_rsa_{アカウント名_2}
HostName github.com
設定したら :wq で保存する。
公開鍵の登録
各アカウントの公開鍵を、GitHub に登録します。
- GitHub にログインします。
- 右上のプロフィールアイコンから Settings をクリックします。
- SSH and GPG keys メニューを選択します。
- New SSH key ボタンをクリックします。
- Title に任意のタイトルを入力します。
- Key フィールドに、公開鍵の内容を貼り付けます。
- Add SSH key ボタンをクリックします。
クリップボードにコピーする方法
Shell
$ pbcopy < ~/.ssh/id_rsa.pub # macOSの場合
$ clip < ~/.ssh/id_rsa.pub # Windowsの場合
テスト接続 🎉
設定が完了したら、テスト接続を行います。
Bash
$ ssh -T github_{アカウント名}
上記コマンドを実行すると、正常に接続できれば、以下のメッセージが表示されます。
Hi {アカウント名}! You've successfully authenticated, but GitHub does not provide shell access.
Githubアカウントの切り替え
git config --globalコマンドを利用して切り替えます。
~/.zshrc
function git_account1() {
git config --global user.name "[GitHubアカウント名_1]"
git config --global user.email "[GitHubのメールアドレス_1]"
}
function git_account2() {
git config --global user.name "[GitHubアカウント名_2]"
git config --global user.email "[GitHubのメールアドレス_2]"
}
ターミナルで切り替え、確認をする場合
Shell
$ git_account1 # GitHubアカウント名_1に切り替え
$ git_account2 # GitHubアカウント名_2に切り替え
$ git config --get user.name # アカウント名を確認
リモートと接続
アカウント毎に設定した Host名 を用いて接続を行います。
git@github_{アカウント名_1}、git@github_{アカウント名_2}を切り替えて利用します。
Shell
#アカウント名_1のリモートと接続
% git remote add origin git@github_{アカウント名_1}:<アカウント名>/<リポジトリ名>.git
#アカウント名_2のリモートと接続
% git remote add origin git@github_{アカウント名_2}:<アカウント名>/<リポジトリ名>.git
SSH 接続を使って複数の GitHub アカウントを効率的に運用することができます。
参考文献 📚
- GitHub 公式ドキュメント: https://docs.github.com/ja/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts
- 複数のGitHubアカウントを使い分けるための設定 - Qiita: https://qiita.com/manzoku_bukuro/items/c6fc9cbc069fe4a1b776
- 複数のGithubアカウントの運用方法 - Qiita: https://qiita.com/ike04/items/b252a0e9f330e887dab6
以上
Discussion