Skip to content

Instantly share code, notes, and snippets.

@steevehook
Forked from jexchan/multiple_ssh_setting.md
Last active January 23, 2019 16:16
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 steevehook/39ffbef61fcea416e2a8ed20fbe11e14 to your computer and use it in GitHub Desktop.
Save steevehook/39ffbef61fcea416e2a8ed20fbe11e14 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

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
Host github.com-activehacker
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_activehacker

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

Clone you repo and modify your Git config

clone your repo git clone git@github.com:activehacker/gfs.git gfs_jexchan

cd 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

Add git user identity to current project

touch ~/.ssh/config
vim ~/.ssh/config

config

# scirlig-ellation
Host github.com-scirilig-ellation
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa

# steevehook
Host github.com-steevehook
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_steevehook
cd path/to/git/project
git config user.name "steevehook"
git config user.email "steevehook@gmail.com"
git remote add origin git@github.com:steevehook/react-docker-travis.git
git remote set-url origin git@github.com-steevehook:steevehook/react-docker-travis.git

Run these commands for every identity:

ssh-add ~/.ssh/id_rsa_user
ssh-add -l

Another related article in Chinese

  1. http://4simple.github.com/docs/multipleSSHkeys/

Make sure to run something like this on every new cloned project

git remote set-url origin git@github.com-steevehook:steevehook/react-docker-travis.git

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