This post explains how to use multiple deployment keys with Git and is my summary of a blog post by ramachandra1. The post builds upon the previous post about GitHub SSH based authentication.
Modify your SSH config to reference multiple host aliases: nano ~/.ssh/config
Host ProjectAliasOne
User git
Hostname github.com
IdentityFile ~/.ssh/github/project-one/id_rsa
Host ProjectAliasTwo
User git
Hostname github.com
IdentityFile ~/.ssh/github/project-two/id_rsa
Register the SSH aliases in the SSH agent via:
eval `ssh-agent`
ssh-add ~/.ssh/github/project-one/id_rsa
ssh-add ~/.ssh/github/project-two/id_rsa
Change the access rights of the SSH key files to prevent a constant password prompt from GitHub:
chmod -R 600 ~/.ssh/github/project-one
chmod -R 600 ~/.ssh/github/project-two
Test that it is working:
ssh -T git@ProjectAliasOne
ssh -T git@ProjectAliasTwo
Now you can use the following syntax to pull a GitHub repository:
git clone git@ProjectAliasOne:repo-owner-name/repo-name.git