Multiple SSH Keys settings for different github account
create different public key
create different ssh key according the article Mac Set-Up Git
$ ssh-keygen -t rsa -C "email@example.com"
Please refer to github ssh issues for common problems.
for example, 2 keys created at:
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
Modify the ssh config
$ cd ~/.ssh/ $ touch config $ nano -a config (**nano** is the editor present on most systems, but use what you prefer)
#activehacker account Host github-activehacker HostName github.com User activehacker IdentityFile ~/.ssh/id_rsa_activehacker IdentitiesOnly yes #jexchan account Host github-jexchan HostName github.com User jexchan IdentityFile ~/.ssh/id_rsa_jexchan IdentitiesOnly yes
Clone you repo and modify your Git config
clone your repo git clone git@:/gfs.git (gfs_jexchan|activehacker) where is the Host you set in ~/.ssh/config and is the corresponding account username
...or for an existing working directory git remote set-url origin git@:/gfs.git
cd gfs_jexchan and modify git config
$ git config user.name "jexchan" $ git config user.email "firstname.lastname@example.org"
$ git config user.name "activehacker" $ git config user.email "email@example.com"
or you can have global git config, but I don't recommend this if you will be accessing multiple accounts from the same machine $ git config --global user.name "jexchan" $ git config --global user.email "firstname.lastname@example.org"
but make sure to (in local directory), for every repo that you don't want to access as user "jexchan" $ git config --local user.name "activehacker" $ git config --local user.email "email@example.com"
then use normal flow to push your code
$ git add . $ git commit -m "your comments" $ git push
Another related article in Chinese