経緯
自分のPCの設定ではGitとスクール用のGitHubアカウントが紐づけられていたが、個人用のGitHubアカウントのリポジトリにプッシュしたいときどうすればよいか分からなかったのでChatGPTに聞いた。
方針
スクール用と個人用の「鍵」を作成し、複数アカウントを切り分けられるようにする。
設定
1. 鍵の作成
ssh-add C:\Users\ユーザ名\.ssh\id_ed25519_school REM スクール用の鍵を作成
ssh-add C:\Users\ユーザ名\.ssh\id_ed25519_personal REM 個人用の鍵を作成
2. ssh-agentに鍵を追加
- ssh-agentの起動
sc start ssh-agent REM Command Lineでの記述
Start-Service ssh-agent REM Power Shellでの記述
- 鍵を追加
ssh-add C:\Users\ユーザ名\.ssh\id_ed25519_school REM スクール用の鍵を追加
ssh-add C:\Users\ユーザ名\.ssh\id_ed25519_personal REM 個人用の鍵を追加
3. コンフィグファイルの作成
C:\Users\ユーザ名\.ssh\config REM コンフィグファイルは拡張子なし
ファイル内に以下の内容を書き込む(メモ帳でファイルを開き、書き込む)
# スクール用
Host github.com-school
HostName github.com
User git
IdentityFile C:\Users\ユーザ名\.ssh\id_ed25519_school
# 個人用
Host github.com-personal
HostName github.com
User git
IdentityFile C:\Users\ユーザ名\.ssh\id_ed25519_personal
4. GitHubにSSH Keyの情報貼り付け
Settings
→SSH & GPG Keys
→New SSH Keys
スクール用アカウントにはC:\Users\ユーザ名\.ssh\id_ed25519_school.pub
個人用アカウントにはC:\Users\ユーザ名\.ssh\id_ed25519_personal.pub
を開いて出てくるssh-ed25519
から始まる文字列をすべてコピーしkey
欄に貼り付け
これで設定完了。
使い方
1. 使いたいアカウントのリポジトリを指定
git remote set-url origin git@github.com-school:スクール用GitHubアカウント名/スクールの任意リポジトリ名.git
REM または
git remote set-url origin git@github.com-personal:個人用GitHubアカウント名/個人の任意リポジトリ名.git
2. 接続テスト
ssh -T git@github.com-school
ssh -T git@github.com-personal
正常なら
Hi <ユーザー名>! You've successfully authenticated, but GitHub does not provide shell access.
ユーザ名がschool/personalのうち自分が設定した方になっていればOK
最後に
Git/GitHubの使い方をよく理解しきれていないので間違っている箇所がある可能性は高いです。
お手数ですが見つけた方は編集リクエストいただけたらと思います。