I can see that GitHub allows you to have multiple mail account and associate every organization you are part of with a different address.
Can this be done also for SSH keys?
What I would like to do is having two different keys, one to push on my private repository, another to push on an organization repository.
0
On Github, you can add several ssh keys to your account, simply go to your profile/ssh and click “Add SSH key”.
But as far as I know the permissions for a repository is associated to the account, not the key. So if you are trying to limit the damage done by someone stealing your key, I believe you will need to create two accounts.
2
Things have changed quite a bit since this answer. There is now a path to do exactly what OP is requesting via fine grained Personal Access Tokens. The fine grained permission ability is (currently) in beta, but allows you to generate a token with least privilege, and tie it to a specific repository.
You can then use GitHub HTTP authentication (instead of SSH) to be able to push commits.
- Generate a personal access token in GitHub user settings (
Settings → Developer settings → Personal access tokens → Fine Grained Tokens (beta) → Generate new token*
)
- Be sure to grant Read / Write to
Code and Commit Statuses
- Add this token to your
.git/config
like so:
[remote "origin"]
url = https://username:[email protected]/username/repo.git