Skip to main content
0
0
0

Connecting multiple Github accounts

This tutorial shows how to connect 2 Github accounts and pull code using SSH keys. The method for connecting multiple accounts is similar.

Generating two SSH keys​

Precautions​

  1. Run this command twice.
  2. Fill in different email addresses for each Github account.
  3. After pressing enter, the first prompt asks for a 'key'. Enter a different path name each time, for example: /Users/zainjane[Username]/.ssh/id_zain[Generated file name].
  4. Hit enter for all other prompts.
ssh-keygen -t ed25519 -C "your_email@example.com"

Result​

Four files will be generated in the directory /Users/zainjane[Username]/.ssh/, like:

id_zain
id_zain.pub
id_jane
id_jane.pub

Configuring public keys in Github​

Configure the contents of id_zain.pub and id_jane.pub into the SSH settings of the Github account.

References can be made to official or other tutorials: Add SSH key to GitHub account

Adding an SSH configuration file​

In the /Users/zainjane[username]/.ssh/ directory, add a new config file

Write the following content in the config file

# zain
Host zain.github.com
Hostname github.com
IdentityFile ~/.ssh/id_zain
User zain

# jane
Host jane.github.com
Hostname github.com
IdentityFile ~/.ssh/id_jane
User jane

Testing SSH connection​

ssh -T git@zain.github.com
ssh -T git@jane.github.com

If successful, the following prompt should appear:

Hi ZainChen! You've successfully authenticated, but GitHub does not provide shell access.

Hi JaneMe! You've successfully authenticated, but GitHub does not provide shell access.

Modify the SSH link copied on Github:

git@github.com:ZainChen/zaindoc.git
# Change it to the following format (according to the different Github accounts to be connected, modify it to the different Host set in 'config')
git@zain.github.com:ZainChen/zaindoc.git

# To pull the project directly:
git clone git@zain.github.com:ZainChen/zaindoc.git

Using SSH through HTTPS port​

Firewalls or other reasons may cause SSH connection timeout.

You can try to establish an SSH connection through the HTTPS port.

HTTPS port test​

ssh -T -p 443 git@ssh.github.com

If successful, the following prompt should appear:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

Enabling SSH connection through HTTPS​

Modify or add a config file in the directory /Users/zainjane[Username]/.ssh/.

# zain
Host zain.github.com
Hostname ssh.github.com
Port 443
IdentityFile ~/.ssh/id_zain
User zain

# jane
Host jane.github.com
Hostname ssh.github.com
Port 443
IdentityFile ~/.ssh/id_jane
User jane

After setting up, use the Testing SSH Connection command above to test.

References​