Gitlab won't allow reuse of a public ssh key for multiple accounts. To get around this you need to create a second ssh key for the second account.
Create or modify your ~/.ssh/config
file:
# normal
Host gitlab.com-work_username
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# second
Host gitlab.com-personal_username
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/second_key
Check that both authenticate correctly with Gitlab:
ssh -T [email protected]_username
ssh -T [email protected]_username
Then in the repo you want to use the second account for, edit the .git/config
file:
[remote "origin"]
url = [email protected]_username:group-name/repo-name.git
Added the -personal_username
after gitlab.com
To clone the repo initially you can use:
GIT_SSH_COMMAND='ssh -i ~/.ssh/<second_private_key> -o IdentitiesOnly=yes' git clone <repo_url.git>
What if it doesn't work for me? Both of the accounts doesn't authenticate