First create publick keys and name them as home_rsa and job_rsa
$ ssh-keygen -t rsa -C "[email protected]"
$ ssh-keygen -t rsa -C "[email protected]"Then add them to ssh process:
$ cd ~/.ssh
$ ssh-add home_rsa
$ ssh-add job_rsa
$ ssh-add -lGo to github and register both public keys into its respectives github accounts:
# on osx
$ pbcopy < ~/.ssh/home_rsa.pub
$ echo 'Copy to your home github account'
$ pbcopy < ~/.ssh/job_rsa.pub
$ echo 'Copy to your job github account'
# on linux
$ cat ~/.ssh/home_rsa.pub | xclip -i
$ echo 'Copy to your home github account'
$ cat ~/.ssh/job_rsa.pub | xclip -i
$ echo 'Copy to your job github account'Create a config file into `~/.ssh/' dir:
$ vim ~/.ssh/configand paste into the config file the text below replacing <YOUR_HOME_GITHUB_USERNAME> and <YOUR_JOB_GITHUB_USERNAME> by your real username github accounts
#home account
Host github.com
HostName github.com
User <YOUR_HOME_GITHUB_USERNAME>
IdentityFile ~/.ssh/home_rsa
IdentitiesOnly yes
PreferredAuthentications publickey
#job account
Host job.github.com
HostName github.com
User <YOUR_JOB_GITHUB_USERNAME>
IdentityFile ~/.ssh/job_rsa
IdentitiesOnly yes
PreferredAuthentications publickeyEdit/create a ~/.gitconfig as here with your <YOUR_HOME_GITHUB_USERNAME> in the user field and your home github account email in the email field
Finally, clone your repo as follows:
# Home Account
$ git clone [email protected]:<YOUR_HOME_GITHUB_USERNAME>/<REPO_NAME>.git
# Job Account
$ git clone [email protected]:<YOUR_JOB_GITHUB_USERNAME>/<REPO_NAME>.gitRemember to update user in job repos.
$ git config user.name "<YOUR_JOB_GITHUB_USERNAME>"
$ git config user.email "<YOUR_JOB_GITHUB_PRIMARY_EMAIL>" if updating config locally does not work, do it globally.
git config --global --replace-all user.name "<YOUR_JOB_GITHUB_USERNAME>"
git config --global --replace-all user.email "<YOUR_JOB_GITHUB_PRIMARY_EMAIL>" Github uses your primary email as the commiteer