Skip to content

Instantly share code, notes, and snippets.

@e-cloud
Forked from scott-ho/multiple_ssh_setting.md
Created April 27, 2018 02:07
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 e-cloud/4242619efdecbcd15f5e9769cfb1f8f1 to your computer and use it in GitHub Desktop.
Save e-cloud/4242619efdecbcd15f5e9769cfb1f8f1 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 Set-Up Git

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Please refer to github ssh issues for common problems.

for example, 2 keys created at:

~/.ssh/id_rsa_usera
~/.ssh/id_rsa_userb

then, add these two keys as following

$ ssh-add ~/.ssh/id_rsa_usera
$ ssh-add ~/.ssh/id_rsa_userb

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
$ vim config

Then added

#usera account
Host usera.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_usera

#userb account
Host userb.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_userb

Clone you repo and modify your Git config

clone your repo

git clone git@usera.github.com:usera/a_repo.git

cd repos of usera and modify git config

$ git config user.name "usera"
$ git config user.email "<usera_email>"

or you can have global git config

$ git config --global user.name "usera"
$ git config --global user.email "<usera_email>"

then use normal flow to push your code

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

Q & A

some errors like Could not open a connection to your authentication agent prompt in bash

run ssh-agent bash

References

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