Skip to content

Instantly share code, notes, and snippets.

@scott-ho
Forked from jexchan/multiple_ssh_setting.md
Last active April 27, 2018 02:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save scott-ho/72d6b4e0b11231cc35165655c511ff2b to your computer and use it in GitHub Desktop.
Save scott-ho/72d6b4e0b11231cc35165655c511ff2b 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