github の別アカウントにコミットしたい

github で別アカウントのリポジトリに、その別アカウントでコミットしたい。

手順

  1. 別アカウント用の鍵つくる
  2. ssh/config で Host の設定する
  3. 設定した Host で github とやりとりする

アカウント名とかは任意のアカウント名。

別アカウント用の鍵つくる

cd ~/.ssh
ls -l
# -rw-------   1 jibun  staff  1679  7 23 00:34 id_rsa
# -rw-r--r--   1 jibun  staff   401  7 23 00:34 id_rsa.pub
# -rw-r--r--   1 jibun  staff  3000 10 29 10:53 known_hosts

# id_rsa は、すでに他の github のアカウントでつかってるやつなので、別アカウント用に用意して登録する

ssh-keygen -t rsa -C "github-ni-touroku-siteru-email@example.com" -f github-alt
cat github-alt.pub | pbcopy

https://github.com/account/ssh をひらいて、Add another public key する。

ssh/config で Host の設定する

vi ~/.ssh/config

# あたらしく追加したの
Host github-alt
     User git
     HostName github.com
     IdentityFile ~/.ssh/github-alt

# 既存の
Host github.com
     User git
     IdentityFile ~/.ssh/id_rsa

確認する。

ssh -T git@github-alt
#=> Hi alt-jibun! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T git@github.com
#=> Hi jibun! You've successfully authenticated, but GitHub does not provide shell access.

設定した Host で github とやりとりする

cd path/to/project

# git init してなければしておく
git init
git config user.name "alt-jibun"
git config user.email "github-ni-touroku-siteru-email@example.com"

git remote add origin git@github-alt:alt-jibun/nanika-project-name
git push -u origin master