Skip to content

Instantly share code, notes, and snippets.

@gruckion
Forked from jexchan/multiple_ssh_setting.md
Created June 11, 2021 22:14
Show Gist options
  • Save gruckion/77f71dc3e082a31cff3aa2840b628b3a to your computer and use it in GitHub Desktop.
Save gruckion/77f71dc3e082a31cff3aa2840b628b3a 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 "[email protected]"

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 [email protected]:activehacker/gfs.git gfs_jexchan

cd gfs_jexchan and modify git config

$ git config user.name "jexchan"
$ git config user.email "[email protected]" 

$ git config user.name "activehacker"
$ git config user.email "[email protected]" 

or you can have global git config $ git config --global user.name "jexchan" $ git config --global user.email "[email protected]"

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/
@gruckion
Copy link
Author

Setup SSH

Create the ida_rsa_user and .pub files

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

Adding your SSH key to the ssh-agent

$ eval "$(ssh-agent -s)"

Use this to list entities

$ ssh-add -l

Use this to remove entities

$ ssh-add -D

Use this to add it

$ ssh-add ~/.ssh/id_rsa_gruckion2

Use this to get the contents of pub for Github. Paste this into Github

$ pbcopy < ~/.ssh/id_rsa_gruckion2.pub

$ ssh-add -l

Useful references

https://www.youtube.com/watch?v=_RsP81Et12s
https://gist.github.com/jexchan/2351996

Cloning like this will only work for the first ssh-add -l identity.

$ git clone [email protected]:github_owner/repo_name.git folder

The second identity will need to use.

$ git clone [email protected]:github_owner/repo_name.git folder

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