Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Using multiple github accounts with ssh keys


I have two Github accounts: oanhnn (personal) and superman (for work). I want to use both accounts on same computer (without typing password everytime, when doing git push or pull).


Use ssh keys and define host aliases in ssh config file (each alias for an account).

How to?

  1. Generate ssh key pairs for accounts and add them to GitHub accounts.

  2. Edit/Create ssh config file (~/.ssh/config):

    # Default github account: oanhnn
       IdentityFile ~/.ssh/oanhnn_private_key
       IdentitiesOnly yes
    # Other github account: superman
    Host github-superman
       IdentityFile ~/.ssh/superman_private_key
       IdentitiesOnly yes
  3. Add ssh private keys to your agent:

    $ ssh-add ~/.ssh/oanhnn_private_key
    $ ssh-add ~/.ssh/superman_private_key
  4. Test your connection

    $ ssh -T
    $ ssh -T git@github-superman

    With each command, you may see this kind of warning, type yes:

    The authenticity of host ' (' can't be established.
    RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:
    Are you sure you want to continue connecting (yes/no)?

    If everything is OK, you will see these messages:

    Hi oanhnn! You've successfully authenticated, but GitHub does not provide shell access.
    Hi superman! You've successfully authenticated, but GitHub does not provide shell access.
  5. Now all are set, just clone your repositories

    $ git clone git@github-superman:org2/project2.git /path/to/project2
    $ cd /path/to/project2
    $ git config ""
    $ git config  "Super Man"

Done! Goodluck!

Copy link

abymathewtranzmeo commented Jan 13, 2023

Thanks man, I think this is the best post about this topic.

Copy link

You're doing the lord's work king 👑

Copy link

Saved my life.

Copy link

Works, thanks :)

Copy link

Thx Bro for writing & sharing that !

Copy link

Kudos to the instructions. They work as a charm!!

Copy link

sebb-m0 commented Mar 1, 2023

👍 thx for this.

Copy link

You should use this to collect the public key from GitHub.
ssh-keyscan >> ~/.ssh/known_hosts
No more error: The authenticity of host ' (' can't be established.

Copy link

that's marvelous guide - it works

Copy link

Excellent post .

Copy link

chenxiao218 commented Mar 12, 2023

git remote set-url origin git@github-personal:user/repo-name.git

This works to me, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment