Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

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 "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

Modify the ssh config

$ cd ~/.ssh/
$ touch config
$ nano -a config
(**nano** is the editor present on most systems, but use what you prefer)

Then added

#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 "jexchan@gmail.com"

cd activehacker

$ git config user.name "activehacker"
$ git config user.email "jexlab@gmail.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 "jexchan@gmail.com"

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 "jexlab@gmail.com"

then use normal flow to push your code

$ git add .
$ git commit -m "your comments"
$ git push

Another related article in Chinese

  1. http://4simple.github.com/docs/multipleSSHkeys/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.