N Kaushik

Use more than one Git account on the same machine

December 27, 2019

Add more than one Github account

I have multiple git accounts on github.com, gitlab and bitbucket. Each site has different username and email address. So, I need to use https for the second and third accounts because ssh doesn’t work with the key I have created for the first account.

This is a common problem we faced. Even if you have one personal and one work account on the same computer, you may need to use https for one.

How to use multiple accounts in one machine :

The first thing we need is to create multiple SSH key files. One SSH for each account. Before that, open one terminal and run the below command to check the SSH keys in your local machine :

ls -al ~/.ssh

It will print something like below :

drwx------   8 nkd  staff   256 Dec 25 18:09 .
drwxr-xr-x+ 57 nkd  staff  1824 Dec 26 23:30 ..
-rw-r--r--   1 nkd  staff   278 Dec 25 18:09 config
-rw-------   1 nkd  staff  3389 Nov  3 17:54 id_rsa
-rw-r--r--   1 nkd  staff   747 Nov  3 17:54 id_rsa.pub
-rw-r--r--   1 nkd  staff  1602 Nov  3 21:04 known_hosts

id_rsa is the existing key and if you might have used that key on your existing Git account.

Create one new SSH key :

Now, move to this folder and create one new pair of keys :

cd ~/.ssh
ssh-keygen -t rsa -b 4096 -C "your-email"

It will ask you to enter the file name. Enter one different file name as id_rsa_email and hit enter. Now, it will ask you to enter a passphase. You can hit enter to leave it blank.

Once done, it will create that new file in that folder.

Create one new config file :

Create one new config file in the .ssh folder :

touch config 

Edit that file with the below content :

# Default github account
Host github.com
   HostName github.com
   IdentityFile ~/.ssh/id_rsa
   IdentitiesOnly yes
   
# Second github account
Host github-second
   HostName github.com
   IdentityFile ~/.ssh/id_rsa_second
   IdentitiesOnly yes

We have two rsa files in the .ssh folder and we are linking both keys to two different github.com accounts. Use the below command to test if the second key works or not :

ssh -T git@github-second

How to connect :

Now, if your ssh address for the repository is :

git@github.com:NKaushik89/Hello.git

Change it to :

git@github-second:NKaushik89/Hello.git

to use it with the second rsa file. Make sure that you have added this file on your second Github account.


Subscribe to my Newsletter