Here at
Avvo, we've started to use
GitHub for publishing some of our internal libraries that might be useful to the programming community. Although we have a
company account, it's nice to have a
personal account, too. Unfortunately, github doesn't allow multiple accounts to share the same SSH key. This makes sense, because all communication with github works using the same ssh user account. From my perspective, it can get kind of annoying.
The key to being able to check code into multiple github accounts is setting up multiple ssh keys and using ssh aliases to use the correct key for the correct repo. First, I created a company-specific key:
justin-mac:~ jweiss$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jweiss/.ssh/id_rsa): /Users/jweiss/.ssh/id_rsa.avvo
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Then I set up an SSH alias in
~/.ssh/config
:
host github-avvo
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa.avvo
Next, I copied the
id_rsa.avvo.pub
key into the
avvo
github acccount.
Finally, when creating the clone of whichever repo I was using, I didn't use the clone path that github gave me, I translated it to use the alias I created. For example, a clone URL like
git@github.com:avvo/fuzzy-find-in-project.git
becomes
github-avvo:avvo/fuzzy-find-in-project.git
Now, when pushing to the central repository, it will pick up the
id_rsa.avvo
key that I tied to the
avvo
github account, and send the code to the right place.
No comments:
Post a Comment