create different ssh key according the article Mac Set-Up Git
$ ssh-keygen -t rsa -C "your_email@youremail.com"
Please refer to github ssh issues for common problems.
for example, 2 keys created at:
~/.ssh/id_rsa_activehacker
~/.ssh/id_rsa_jexchan
then, add these two keys as following
$ ssh-add ~/.ssh/id_rsa_activehacker
$ ssh-add ~/.ssh/id_rsa_jexchan
you can delete all cached keys before
$ ssh-add -D
finally, you can check your saved keys
$ ssh-add -l
$ cd ~/.ssh/
$ touch config
$ subl -a config
Then added
#activehacker account
Host github.com-activehacker
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_activehacker
#jexchan account
Host github.com-jexchan
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_jexchan
clone your repo git clone git@github.com:activehacker/gfs.git gfs_jexchan
cd gfs_jexchan and modify git config
$ git config user.name "jexchan"
$ git config user.email "jexchan@gmail.com"
$ git config user.name "activehacker"
$ git config user.email "jexlab@gmail.com"
or you can have global git config $ git config --global user.name "jexchan" $ git config --global user.email "jexchan@gmail.com"
then use normal flow to push your code
$ git add .
$ git commit -m "your comments"
$ git push
Another related article in Chinese
After digging for a while here's the issue I found and the fix:
This is the config file for ssh located @ ~/.ssh/config
And this is the config file for the remote repo:
You can notice that I have changed my remote repo URL from: git@github.com:abhisri1997/mailer.git to gh_personal:abhisri1997/mailer.git
How this works:
You'd like to establish an ssh connection to the GitHub server to read/write the data to your repo for that you have created the key by reading the above article.
Now whenever you do a git pull/push or whenever you want to establish a connection to GitHub using the git command
It will check your ssh config file to check if the host is defined with git@github.com but it will find nothing.
So it won't be able to shake the earlier created private and public keys.
So in order to do that we have to change our repo URL("git@github.com:abhisri1997/mailer.git ") to the HOST value (gh_personal) set in ~/.ssh/config