Skip to content

Instantly share code, notes, and snippets.

@craigmdennis
Forked from jexchan/multiple_ssh_setting.md
Last active December 10, 2016 00:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save craigmdennis/4f3cf8f73224c07e4b0fdf3721c5a3e9 to your computer and use it in GitHub Desktop.
Save craigmdennis/4f3cf8f73224c07e4b0fdf3721c5a3e9 to your computer and use it in GitHub Desktop.
Multiple SSH keys for different github accounts

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

delete all cached keys

$ ssh-add -D

then, add these two keys as following

$ ssh-add ~/.ssh/id_rsa_activehacker
$ ssh-add ~/.ssh/id_rsa_jexchan

finally, you can check your saved keys

$ ssh-add -l

Modify the ssh config

$ 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
	IdentitiesOnly yes

#jexchan account
Host github.com-jexchan
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_jexchan
	IdentitiesOnly yes

Clone you repo and modify your Git config

clone your repo

$ git clone git@github.com-activehacker:activehacker/gfs.git gfs_jexchan

...or for an existing working directory

$ git remote set-url origin git@github.com-activehacker:activehacker/gfs.git

cd into 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

You may also need to change the [remote "origin"] url field in your local .git/config to use the Host defined in ~/.ssh/config in order for this to work

[remote "origin"]
    	url = git@github.com-activehacker:activehacker/gfs.git

Without that modification, git may just try to use your default ssh key.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment