今回githubのアカウントを複数持ちたくなったのでその方法を書いておきます。主にsshの設定で手こずりました。
エンジニアの中には仕事での開発とプライベートでの開発とでgithubアカウントを複数持っている人も居るようです。そのためか「github アカウント 切り替え」などで調べるといくつか記事が出てきます。
[備忘] 複数Githubアカウントでssh接続設定(config)を使い分ける手順
GitHubで仕事用とプライベート用のアカウントを切り替えて使う
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
手順は以下の4つです。
- ssh鍵を新しく作成
- ssh設定ファイルで新しくHostを設定
- githubに公開鍵を登録
- 作業用フォルダでローカルのユーザ名とメールアドレスを設定
ssh鍵を作成
鍵のファイルを作りたいディレクトリにて
ssh-keygen -t rsa -C {Githubメールアドレス} -f {作成する鍵の(ファイル)名}
で鍵を作成。今回は2つ目なので、「ファイル名がデフォルトのものだと上書きされるよ」という警告が出ました。オプションでファイル名を指定しておきます。
ssh鍵作成コマンドの書式に関しては以下のページに書いてありました。
Host設定
ここで一番詰まりました。
Host github.com.main # メインアカウント HostName github.com User git Port 22 IdentityFile ~/.ssh/id_rsa_main # メインアカウント用の鍵 TCPKeepAlive yes IdentitiesOnly yes Host github.com.sub # サブアカウント HostName github.com User git Port 22 IdentityFile ~/.ssh/id_rsa_sub # サブアカウント用の鍵 TCPKeepAlive yes IdentitiesOnly yes
これをsshのconfigファイルに加えると、github.comとgithub.com.subでアカウントを分けることができます。
ここで詰まったのは、そのconfigファイルがどこにあるのかということ。出てくる記事ではWindowsとは異なるファイル構成のようで。見つけるのに苦労しました。
まあ初期設定のファイル構成を覚えていればすぐ見つかったのかもしれませんが…
Program Files/Git/etc/ssh/ssh_config
にありました。
追記:
別のPCで試したところ、~.ssh/ディレクトリに新しくconfigファイルを追加し、その中に記載することでssh接続できました。
公開鍵の登録
いつものやつですね。
~/ssh/hogehoge.pubの内容をすべてコピペします。
登録できたかどうかは以下のコマンドで確認。
ssh -T git@{Hostに設定した名前} $ ssh -T git@github.com.main $ ssh -T git@github.com.sub
ローカルでユーザ情報を設定
グローバル設定ではメインのアカウントを使ってると思うので
git config --local user.name "user name" git config --local user.email "email@example.com"
で作業ディレクトリにユーザ名とメールアドレスを設定すれば完了です。
コメント