1台のPCでGitHubアカウントを切り替えようとした時にハマったので、その備忘録です。
この記事のゴール
仕事用のPCにプライベート用アカウントのリポジトリをcloneしてpushできるようにする。
切り替えの手順
- 仕事用のPCにプライベート用アカウントに使うsshキーを作成
- GitHubに公開キーを登録
- ~/.ssh/configファイルにプライベート用アカウント用の設定を追加
- 接続確認
- git clone
- git push
1. 仕事用のPCにプライベート用アカウントに使うsshキーを作成
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096 -f <YOUR_FILE_NAME> // 今回は例としてprivate_rsaで作っています
// private_rsa と private_rsa.pub が作成される
2. GitHubに公開キーを登録
$ pbcopy < ~/.ssh/private_rsa.pub
// 公開キーがクリップボードにコピーされる
GitHubのプライベートアカウントのSettingsより公開キーを登録
3. ~/.ssh/configファイルにプライベート用アカウント用の設定を追加
~/.ssh/config
// Host githubはもともと仕事で使って存在していた
Host github
HostName github.com
User git
IdentityFile ~/.ssh/main_rsa
// 以下のHost github-privateを追加する
Host github-private
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/private_rsa
4. 接続確認
$ ssh -T github-private
// Hi <GITHUB_ACCONT_NAME> You've successfully authenticated, but GitHub does not provide shell access.
// 上記のように返ってくれば接続成功
5. git clone
接続までは成功しているので、 cloneで持ってくる。
@以下の Host名
を先ほど作成したHostにする。
// こちらはエラーになる
$ git clone git@github.com:<ACCOUNT_NAME>/<REPOSITORY_NAME>.git
// こちらはOK
$ git clone git@github-private:<ACCOUNT_NAME>/<REPOSITORY_NAME>.git
6. git push
local userの登録をする
$ git config --local user.name <プライベートユーザー名>
$ git config --local user.email <プライベートメールアカウント>
$ git push
// pushできる
以上です。
慣れてないと結構ハマりますね。。。