# Trying to use insteadOf trick to use different SSH keys for separate github accounts - not working

3 messages from 2017-12-16 to 2017-12-16. Participants: Asfand Qazi, Jeff King.
Thread: https://gitlist.dev/t/47450

## Asfand Qazi, 2017-12-16 07:50

Subject: Trying to use insteadOf trick to use different SSH keys for separate github accounts - not working
Message-ID: <CAFTSPUV1E+jCMHzx+rq9Y1agthxcYrzDVY-rThTNCG7BfnPeTg@mail.gmail.com>
URL: https://gitlist.dev/e/CAFTSPUV1E%2BjCMHzx%2Brq9Y1agthxcYrzDVY-rThTNCG7BfnPeTg%40mail.gmail.com

```
Hello,

Here's what I'm trying to do, that i need your help with to make work:

I have 2 github accounts, each with their own SSH key: my home account
(default SSH key) and my work account (alternative SSH key). I can
create a virtual hostname in my ~/.ssh/config like so:

Host work.github.com
     Hostname github.com
     IdentityFile ~/.ssh/id_rsa-work

and then clone repos with:

git clone git@work.github.com/MyCompany/la-repo.git

However, I'm trying to use Go, which needs to access every repo host
as 'github.com', and won't support my little SSH hostname trick by
default.

I found out about the 'insteadOf' setting, and thought it would work.
So I added this to my global git config:

[url "git@github.com:MyCompany/"]
insteadOf = git@work.github.com:MyCompany/

and left the SSH hostname setting where it was. Then I tried doing:

git clone git:github.com/MyCompany/la-repo.git

But it won't work. With GIT_TRACE=2, I get:

$ GIT_TRACE=2 git clone git@github.com:MyCompany/la-repo.git
07:46:27.627557 git.c:344               trace: built-in: git 'clone'
'git@github.com:MyCompany/la-repo.git'
Cloning into 'la-repo'...
07:46:27.629623 run-command.c:626       trace: run_command: 'ssh'
'git@github.com' 'git-upload-pack '\''MyCompany/la-repo.git'\'''
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


Can anyone help me with this?

Thanks

Regards,
     Asfand

```

## Jeff King, 2017-12-16 09:48

Subject: Re: Trying to use insteadOf trick to use different SSH keys for separate github accounts - not working
Message-ID: <20171216094840.GA32706@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20171216094840.GA32706%40sigill.intra.peff.net
In-Reply-To: <CAFTSPUV1E+jCMHzx+rq9Y1agthxcYrzDVY-rThTNCG7BfnPeTg@mail.gmail.com>

```
On Sat, Dec 16, 2017 at 07:50:02AM +0000, Asfand Qazi wrote:

> I found out about the 'insteadOf' setting, and thought it would work.
> So I added this to my global git config:
> 
> [url "git@github.com:MyCompany/"]
> insteadOf = git@work.github.com:MyCompany/
> 
> and left the SSH hostname setting where it was. Then I tried doing:
> 
> git clone git:github.com/MyCompany/la-repo.git
> 
> But it won't work. With GIT_TRACE=2, I get:

If I'm reading it right, you have the config backwards. You want to
convert git@github.com from Go's invocation of Git into your special
"work" alias. So:

  [url "git@work.github.com:MyCompany/"]
  insteadOf = "git@github.com:MyCompany/"

-Peff

```

## Asfand Qazi, 2017-12-16 10:04

Subject: Re: Trying to use insteadOf trick to use different SSH keys for separate github accounts - not working
Message-ID: <CAFTSPUWOhyBamNEJzbSDqZW+GE38+PeW6R+DXnY77yo1dbYQ7Q@mail.gmail.com>
URL: https://gitlist.dev/e/CAFTSPUWOhyBamNEJzbSDqZW%2BGE38%2BPeW6R%2BDXnY77yo1dbYQ7Q%40mail.gmail.com
In-Reply-To: <20171216094840.GA32706@sigill.intra.peff.net>

```
Thanks it worked! I was reading all the tutorials wrong all this time...

Regards,
     Asfand


On 16 December 2017 at 09:48, Jeff King <peff@peff.net> wrote:
> On Sat, Dec 16, 2017 at 07:50:02AM +0000, Asfand Qazi wrote:
>
>> I found out about the 'insteadOf' setting, and thought it would work.
>> So I added this to my global git config:
>>
>> [url "git@github.com:MyCompany/"]
>> insteadOf = git@work.github.com:MyCompany/
>>
>> and left the SSH hostname setting where it was. Then I tried doing:
>>
>> git clone git:github.com/MyCompany/la-repo.git
>>
>> But it won't work. With GIT_TRACE=2, I get:
>
> If I'm reading it right, you have the config backwards. You want to
> convert git@github.com from Go's invocation of Git into your special
> "work" alias. So:
>
>   [url "git@work.github.com:MyCompany/"]
>   insteadOf = "git@github.com:MyCompany/"
>
> -Peff

```
