Let's look at how to manage multiple Github accounts from one computer. In essence, it's simply a matter of balancing both your git and ssh configurations - which actually is not as bad as it might seem.
Note: This tutorial is meant for Unix users.
Set up SSH Keys
Let's assume your two Github accounts are named githubPersonal and githubWork, respectively.
Create two SSH keys, saving each to a separate file:
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "your_email@associated_with_githubPersonal.com"# save it as id_rsa_personal when prompted$ ssh-keygen -t rsa -C "your_email@associated_with_githubWork.com"# save it as id_rsa_work when prompted
The above commands setup the following files:
Add the keys to your Github accounts:
Copy the key to your clipboard:
$ pbcopy < ~/.ssh/id_rsa_personal.pub
Add the key to your account:
Go to your Account Settings
Click "SSH Keys" then "Add SSH key"
Paste your key into the "Key" field and add a relevant title
Click "Add key" then enter your Github password to confirm
Repeat the process for your githubWork account.
Create a configuration file to manage the separate keys
Create a config file in ~/.ssh/
$ touch config
Edit the file using the text editor of your choice. I used vim - $ vim config:
# githubPersonalHost personal
# githubWorkHost work
Update stored identities
Clear currently stored identities:
$ ssh-add -D
Add new keys:
$ ssh-add id_rsa_personal
$ ssh-add id_rsa_work
Test to make sure new keys are stored:
$ ssh-add -l
Test to make sure Github recognizes the keys:
$ ssh -T personal
Hi githubPersonal! You've successfully authenticated, but GitHub does not provide shell access.$ ssh -T workHi githubWork! You've successfully authenticated, but GitHub does not provide shell access.
On Github, create a new repo in your personal account, githubPersonal, called test-personal.
Back on your local machine, create a test directory:
$ cd ~/documents
$ mkdir test-personal
$ cd test-personal