This content originally appeared on DEV Community and was authored by Karolis Šarapnickis
Short tutorial on how to structure projects and setup multi-user Git SSH workflow.
When using a single machine with multiple git accounts, you might encounter some obstacles with SSH setup. The easiest way to achieve a multi-user setup is to structure git repositories by respective directories, e.g.:
projects
├── work
│ ├── enterprise-fiz-buz
│ └── ...
└── personal
├── karolis.sh
└── ...
This short tutorial will help you set up SHH for such workflow.
Generating a new SSH key
To generate a new SSH key, use the provided template script (or check the docs):
export EMAIL=karolis.sarapnickis@work.com
export SSH_FILE=$HOME/.ssh/id_rsa_work
ssh-keygen -t rsa -b 4096 -C $EMAIL -f $SSH_FILE
ssh-add -K $SSH_FILE
echo "? PUBLIC KEY BELOW ?" && cat $SSH_FILE.pub
pbcopy < $SSH_FILE.pub
What's left is to add the SSH key to your GitHub/GitLab/etc. account.
Multi-user Git SSH setup
The general idea is that you use specific ssh command based on your working directory with the help of git includes.
Update the ~/.gitconfig
file:
[user]
name = Karolis Šarapnickis
email = pastas.k@gmail.com
[core]
sshCommand = ssh -i ~/.ssh/id_rsa
[push]
default = current
[includeIf "gitdir:~/projects/work/"]
path = ~/.gitconfig.work
And the ~/.gitconfig.work
file:
[user]
email = karolis.sarapnickis@work.com
[core]
sshCommand = ssh -i ~/.ssh/id_rsa_work
And that's it! Appropriate SSH setup will be used based on directory location, no extra actions are needed.
This content originally appeared on DEV Community and was authored by Karolis Šarapnickis

Karolis Šarapnickis | Sciencx (2021-09-12T17:15:56+00:00) How to Manage Multiple SSH Keys for GitHub, GitLab, etc.. Retrieved from https://www.scien.cx/2021/09/12/how-to-manage-multiple-ssh-keys-for-github-gitlab-etc/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.