Currently, I am working for a company where they create a Github account using the company’s email id and all the repository access would be given to that Github account.
But I have a personal Github account as well and I am quite active in that too.
Problem
Now the problem is, How to manage the SSH keys for both the GitHub accounts. Git by default takes the ~/.ssh/id_rsa(.pub) keys and we can’t add the same ssh key in both the GitHub account.
Solution
We can manage multiple Github accounts using the ssh config file.
Create a new ssh key pair
Generate a new ssh key pair using the company’s email id.
ssh-keygen -t rsa -b 4096 -C "prasanna@his-company.com"
In the prompt, specify a different file name.
Eg: /User/prasanna/.ssh/id_rsa_my_company
Add the ssh key to the ssh-agent
Now add the generated key using the ssh-add command.
ssh-add ~/.ssh/id_rsa_my_company
Output:
Identity added: /Users/prasanna/.ssh/id_rsa_my_company (prasanna@his-company.com)
Add the id_rsa_my_company.pub key to your company Github account.
cat ~/.ssh/id_rsa_my_company.pub|pbcopy
Update the hosts in the ssh config file
Update the config file (~/.ssh/config) with these values and it should have entry to for you personal Github account,
My Company Github Account
Host github-mycompany.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_my_companyPersonal Github Account
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Clone your personal Github and company Github projects
You can clone your personal private projects using the command,
git clone git@github.com:your-github-account/private-repo.git
You can clone your company ‘s private projects using the command,
git clone git@github-mycompany.com:company-acc/private.git
That’s it. Hope it will be useful. Let me know If you have any questions in the comment section.
Top comments (1)
Thank you so much, this is so helpful.