You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

first we need to generate SSH keys in the server.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-repo01
ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-repo02

This will generate SSH key in the ~/.ssh, next we need edit SSH config to assign which repository use which key, open ~/.ssh/config.

vi ~/.ssh/config

After open the file, add the following configure.

Host github-repo01
HostName github.com
User git
IdentityFile ~/.ssh/github-repo01

Host github-repo02
HostName github.com
User git
IdentityFile ~/.ssh/github-repo02

Next is add the public key into the GitHub repository, please link to the repository and click Setting tab in the upper right.

 

Now back to the server, we can use SSH key to access the GitHub, in this case we want to clone repo01 then command will like below.

git clone github-repo01:{UserName}/repo01.git
 

https://medium.com/@shawnoy/multiple-github-deploy-keys-in-a-single-server-34831d13a919

 

Your .ssh/config file points to github.com and it doesn't know which key to use when it's time to do the pull.

So I found a trick with github.com. You can tell your ssh client that each repository lives in a different github.com subdomain, in these cases, they will be repo1.github.com and repo2.github.com

So first thing is editing the .git/config files on your repo clones, so they look like this instead:

For repo1

[remote "origin"]
        url = "ssh://git@repo1.github.com/alice/repo1.git"

For repo2

[remote "origin"]
        url = "ssh://git@repo2.github.com/alice/repo2.git"

And then, on your .ssh/config file, now you will be able to enter a configuration for each subdomain :)

Host repo1.github.com
  HostName github.com
  User git
  IdentityFile /home/alice/.ssh/repo1.alice_github.id_rsa
  IdentitiesOnly yes

Host repo2.github.com
  HostName github.com
  User git
  IdentityFile /home/alice/.ssh/repo2.alice_github.id_rsa
  IdentitiesOnly yes

Now you are able to git pull origin master without entering any passwords from both repositories.

https://gist.github.com/gubatron/d96594d982c5043be6d4

 

  • No labels