I recently started working for a company that uses GitHub Enterprise for their Git solution. I set my work laptop and it’s terminal to use that GitHub account and git credentials to manage git on my computer. I also wanted to work on my personal projects which I have maintained on my GitHub account. The process to maintain multiple Git accounts on a single machine was straightforward but I wasn’t aware of the how-tos.
I looked up upon it a little and got it to work. If you’re looking for the same, here’s how:
(The commands and directories are according to a Mac computer. Things might change on a Linux or a Windows, but the job to be done remains the same, please look uiip for the right commands in that case.)
1. Generate separate SSH Keys for both (or more?) accounts
head to your
.ssh directory and generate sets of SSH keys for both the accounts. This can be ignored for the accounts which already have a pair generated. This was true for my case as I had already set up my work account.
To generate a pair of ssg keys, run
ssh-keygen -t rsa
Follow the instructions that ask for a file location, name, etc. For the name, I prefer setting something like
id_rsa_personal as it is easier to identify (in case I need to someday).
2. Manage ssh config file
There should be a file named
config in the
.ssh folder. If not, we need to create one by running
Edit the config and add the following lines into it:
#work account Host github<-identifier>.com HostName <enterprice github host> User git IdentityFile ~/.ssh/id_rsa_work IdentitiesOnly yes #personal account Host github<-identifier>.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes
#pradipta-sarma account Host github.com HostName xyz.github.com User git IdentityFile ~/.ssh/id_rsa_work IdentitiesOnly yes #pradipta account Host github-personal.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes
And save the file.
3. Register the SSH keys on the respective GitHub accounts
This step is to let GitHub identify our machine and authorize it, to avoid typing in the id and password everytime. Follow the steps here to add the keys to the respective accounts.
To avoid using the work account on a clone for a personal repo, you can change a clone from:
git clone email@example.com:user/repo.git to
git clone firstname.lastname@example.org:user/repo.git
With this, you’re good to go. Let me know if there’s an issue or if I have missed something.