DEV Community

Sahil Verma
Sahil Verma

Posted on

Use Multiple GitHub Accounts on same machine with SSH

Learn how to manage multiple GitHub accounts on the same machine using SSH keys and SSH config.

1. Generate a new SSH key for each GitHub account

# For personal account ssh-keygen -t ed25519 -C "your-personal-email@example.com" -f ~/.ssh/id_ed25519_personal # For work account ssh-keygen -t ed25519 -C "your-work-email@example.com" -f ~/.ssh/id_ed25519_work 
Enter fullscreen mode Exit fullscreen mode

2. Add keys to the SSH agent

eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519_personal ssh-add ~/.ssh/id_ed25519_work 
Enter fullscreen mode Exit fullscreen mode

3. Add public keys to GitHub

Go to GitHub → Settings → SSH and GPG Keys for each account and add:

cat ~/.ssh/id_ed25519_personal.pub cat ~/.ssh/id_ed25519_work.pub 
Enter fullscreen mode Exit fullscreen mode

4. Create or edit SSH config

nano ~/.ssh/config # code ~/.ssh/config to open on vs code 
Enter fullscreen mode Exit fullscreen mode

Add this:

# Personal GitHub Host github-personal HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal # Work GitHub Host github-work HostName github.com User git IdentityFile ~/.ssh/id_ed25519_work 
Enter fullscreen mode Exit fullscreen mode

5. Use correct GitHub alias when cloning

# Personal repo git clone git@github-personal:username/repo.git # Work repo git clone git@github-work:work-username/repo.git 
Enter fullscreen mode Exit fullscreen mode

6. Set Git identity per project

# Inside personal repo git config user.name "Your Personal Name" git config user.email "your-personal-email@example.com" # Inside work repo git config user.name "Your Work Name" git config user.email "your-work-email@example.com" 
Enter fullscreen mode Exit fullscreen mode

You can now work with multiple GitHub accounts on the same machine without conflicts.

Top comments (0)