背景
学校用と趣味用のアカウントをSourceTreeで使い分けないといけなくなった際に、ちょっと手こずったのでここに備忘録として残すことにしました。
環境について
- Windows 10
- SourceTree 3.4.5
手順
- それぞれのSSHKeyを作成
- SSHKeyをそれぞれのGithubに登録
- .ssh/configを作成
- SourceTreeの設定を変更
- SourceTreeにSSHKeyを追加
- クローンする
- リポジトリの設定を変更
1. それぞれのSSHKeyを作成
ここでは
- 学校用 : id_school_rsa
- 趣味用 : id_private_rsa
の2つを作成します。
PowerShellを開いて、以下の手順を踏みます。
# ディレクトリを変更
cd ~/.ssh
# SSHKeyを作成
#(-C 以降はコメントなのですが、githubのメールアドレスにしている方が多いようでした)
ssh-keygen -t rsa -f id_school_rsa -b 4096 -C "メールアドレス"
# パスフレーズを聞かれるので入力する
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
# もう一度入力する
Enter same passphrase again:
# 趣味用も同じ手順で作成する
ここまでで.ssh
ディレクトリ内は以下のようになっているはずです。
config
id_school_rsa
id_school.pub
id_private_rsa
id_private_rsa.pub
known_hosts
2. SSHKeyをそれぞれのGithubに登録
先ほど作成した公開鍵をコピーします。
# 表示
cat id_school.pub
# 表示される文字列をコピー
Githubにアクセスして、
- 右上のアイコン > Settings
- 左側の 「SSH and GPG Keys」
- 右上にある緑色の 「New SSH Key」
- Titleにわかりやすい名前を、Keyに先ほどコピーした公開鍵をペースト
- 「Add SSH Key」で登録完了です
3. .ssh/configを作成
.ssh/config
を開いて以下を入力して保存します。
私の場合は無かったので新規作成しました。
Host名はそれぞれが異なっていれば何でも大丈夫です。
Host github-school
User git
Port 22
HostName github.com
IdentityFile ~/.ssh/id_school_rsa
TCPKeepAlive yes
IdentitiesOnly yes
Host github-private
User git
Port 22
HostName github.com
IdentityFile ~/.ssh/id_private_rsa
TCPKeepAlive yes
IdentitiesOnly yes
4. SourceTreeの設定を変更
SourceTreeを開いて、上部メニューバーから ツール > オプション
の順に選択し、オプション画面を開きます。
SSHクライアントの設定の「SSHクライアント」を「OpenSSH」に変更します。
5. SourceTreeにSSHKeyを追加
上部メニューバーから ツール > SSHキーを追加
の順に選択します。
すると、SSHキーファイルを選択する画面が開くので、先ほど作成した**秘密鍵 (.pubではない方)**を選択します。
コマンドプロンプトが開いて以下のように聞かれますので、設定したパスフレーズを入力してください。
SourceTree is loading your SSH key into the agent for authentication
Please enter your passphrase if prompted to do so
Enter passphrase for C:\Users\arrow\.ssh\id_school_rsa:
これをそれぞれ繰り返します。
6. クローンする
クローンする際、ソースURLの git@github.com
の部分を git@[Host名]
に置き換えます。
以下の場合では趣味用のアカウントを使いたいので git@github-private
としています。
7. リポジトリの設定を変更
設定 > 詳細
を開いて、使いたいアカウントに合ったユーザー情報に変更します。
これで完了です!