Skip to content

Instantly share code, notes, and snippets.

@rajendarreddyj
Last active October 6, 2017 20:31
Show Gist options
  • Save rajendarreddyj/0d4ffca275b72d76bee0f4f562f26b47 to your computer and use it in GitHub Desktop.
Save rajendarreddyj/0d4ffca275b72d76bee0f4f562f26b47 to your computer and use it in GitHub Desktop.

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"
$ ssh-keygen -t rsa -b 4096 -C "rajendarreddy.jagapathi@company.com"

Please refer to github ssh issues for common problems.

for example, 2 keys created at:

~/.ssh/id_rsa_company1
~/.ssh/id_rsa_company2

then, add these two keys as following

$ ssh-add ~/.ssh/id_rsa_company1
$ ssh-add ~/.ssh/id_rsa_company2

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

#company1 account
Host company1
	HostName company1.com
	User rajendar@company1.com
	IdentityFile ~/.ssh/id_rsa_company1

#company2 account
Host company2
	HostName company2.com
	User rajendar@company2.com
	IdentityFile ~/.ssh/id_rsa_company2

Clone you repo and modify your Git config

clone your repo git clone git@company1:demo/demo.git demo

cd demo and modify git config

$ git config user.name "rajendar"
$ git config user.email "rajendar@company1.com" 

$ git config user.name "rajendar"
$ git config user.email "rajendar@company2.com" 

or you can have global git config

$ git config --global user.name "rajendarreddyj"
$ git config --global user.email "rajendarreddyj@gmail.com"

then use normal flow to push your code

$ git add .
$ git commit -m "your comments"
$ git push
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment