On Thu, Jul 19, 2018 at 03:24:54PM +0300, Basin Ilya wrote:
> I have two github accounts, one is for my organization and I want git
> to automatically choose the correct ssh `IdentityFile` based on the
> clone URL:
>
> [email protected]:other/publicrepo.git
> ~/.ssh/id_rsa
> [email protected]:theorganization/privaterepo.git
> ~/.ssh/id_rsa.theorganization
>
> Unfortunately, both URLs have same host name, therefore I can't
> configure this in the ssh client config. I could create a host alias
> there, but sometimes somebody else gives me the github URL and I want
> it to work out of the box.
I think you can hack around this using Git's URL rewriting.
For example, try this:
git config --global \
url.gh-other:other/.insteadOf \
[email protected]:other/
git config --global \
url.gh-org:theorganization.insteadOf \
[email protected]:theorganization/
And then:
git clone [email protected]:other/publicrepo.git
will hit gh-other, which you can configure using an ssh host alias.
-Peff