This question would be simple if I ask it as a use case. I have two SSH keys on my computer
And I have two different user accounts on bitbucket.org. One of them is my personal account and the other is my company account. I have N number of repositories on my PC as well. Some of them has to be linked with my personal account and some other repos with the company account. There is no repositories that has to be linked to both the accounts. I have set the Identityfile inside the ~/.ssh/config
to something like below.
Host *.bitbucket.org
IdentityFile ~/.ssh/company_id_rsa
And whenever I want to push something to my personal repos, I change the config file to something like below.
Host *.bitbucket.org
IdentityFile ~/.ssh/personal_id_rsa
And now, it becomes quite an inconvenience to edit the file whenever I want to make a git push
. I was just thinking if I could just pickup one of the keys on the fly, when I push, it would have been a lot easier. Is there any way to do so?
I came across this question which explains a similar use case, but that is not the exact use case here.
You can add two Bitbucket "accounts" in your ssh config file. Bitbucket has alternative ssh host listening on port 443 (For those who has blocked almost all ports (sic!)).
Host bitbucketCompany
User git
HostName altssh.bitbucket.org
Port 443
IdentityFile ~/.ssh/company_id_rsa
Host bitbucketWork
User git
HostName bitbucket.org
Port 22
IdentityFile ~/.ssh/personal_id_rsa
Then update your remotes in .git/config
Company projects
[remote "origin"]
url = ssh://bitbucketCompany/username/repo.git
Personal projects
[remote "origin"]
url = ssh://bitbucketPersonal/username/repo.git
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With