create different ssh key according the article Set-Up Git
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Please refer to github ssh issues for common problems.
for example, 2 keys created at:
~/.ssh/id_rsa_usera
~/.ssh/id_rsa_userb
then, add these two keys as following
$ ssh-add ~/.ssh/id_rsa_usera
$ ssh-add ~/.ssh/id_rsa_userb
you can delete all cached keys before
$ ssh-add -D
finally, you can check your saved keys
$ ssh-add -l
$ cd ~/.ssh/
$ touch config
$ vim config
Then added
#usera account
Host usera.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_usera
#userb account
Host userb.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_userb
clone your repo
git clone [email protected]:usera/a_repo.git
cd repos of usera and modify git config
$ git config user.name "usera"
$ git config user.email "<usera_email>"
or you can have global git config
$ git config --global user.name "usera"
$ git config --global user.email "<usera_email>"
then use normal flow to push your code
$ git add .
$ git commit -m "your comments"
$ git push
run ssh-agent bash