Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
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 ""

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
$ subl -a config

Then added

#activehacker account
	User git
	IdentityFile ~/.ssh/id_rsa_activehacker
	IdentitiesOnly yes

#jexchan account
	User git
	IdentityFile ~/.ssh/id_rsa_jexchan
	IdentitiesOnly yes

Clone you repo and modify your Git config

clone your repo git clone gfs_jexchan

...or for an existing working directory git remote set-url origin

cd gfs_jexchan and modify git config

$ git config "jexchan"
$ git config "" 

$ git config "activehacker"
$ git config "" 

or you can have global git config $ git config --global "jexchan" $ git config --global ""

then use normal flow to push your code

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

Another related article in Chinese

Copy link

johnwatsondev commented Jul 2, 2015

Command of "ssh-add -D" will DELETE all identities but not delete all cached keys before.
So, you should run "ssh-add -D" command first and "ssh-add ~/.ssh/id_rsa_activehacker" second.

Copy link

hasnat-we commented Feb 5, 2021

Thanks a lot! In Windows I had to do " ssh-add "%HOMEPATH%/.ssh/id_rsa" ". Thanks

Copy link

lekhanhtoan37 commented Aug 17, 2021

Thanks a lot! 100% working

Copy link

h2000 commented Jan 18, 2022

Works for me too, thanks a lot!

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