From: Basin Ilya Date: Thu, 19 Jul 2018 19:01:29 GMT Subject: Re: Use different ssh keys for different github repos (per-url sshCommand) Message-ID: <966f577f-c4ca-46a4-d55d-817e84780324@gmail.com> In-Reply-To: <20180719164251.GA4868@sigill.intra.peff.net> Wow, thanks. For me it was enough to configure just one rewrite, because my public github account is associated with my default key. Note that I added the missing slash and the username: git config --global \ url.git@gh-org:theorganization/.insteadOf \ git@github.com:theorganization/ 19.07.2018 19:42, Jeff King пишет: > 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: >> >> git@github.com:other/publicrepo.git >> ~/.ssh/id_rsa >> git@github.com: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 \ > git@github.com:other/ > > git config --global \ > url.gh-org:theorganization.insteadOf \ > git@github.com:theorganization/ > > And then: > > git clone git@github.com:other/publicrepo.git > > will hit gh-other, which you can configure using an ssh host alias. > > -Peff >