Hacker News new | ask | show | jobs
by fnord77 1765 days ago
put this in your ~/.ssh/config

    Host personal.github.com
          HostName github.com
          User git
          IdentityFile ~/.ssh/id_rsa_personal
then clone from git@personal.github.com/x.git for personal stuff
3 comments

The host also doesn’t have to be a “real” host. You could do something like github-personal for example.

Thanks for the assist fnord77!

Newbie here. Where should I type `github-personal` ?
Just posted a more complete example above

https://news.ycombinator.com/item?id=28242339

In the example, fnord77 posted, you can replace all the places that they used personal.github.com. It will be usable anywhere you would use ssh, including when going through a few tools that ultimately resolve to an ssh invocation. I won't copy the host block in .ssh/config but you could, for example:

`sshuttle -r my-cloud-server 0/0` for a poor man's vpn

`ssh some-enterprise-server` for when the server has a user unfriendly domain name that you don't want to bother remembering

`git clone git@github-personal:myusername/somerepo.git` when you want to clone using your personal key from GitHub.

There is the caveat, though, that you may have some nested dependencies that will use the plain ole every day host name in which case things will break for you. It rarely comes up, though, in my experience.

Wow! I don’t know why I hadn’t thought of that, even though I use aliases all the time for SSH. Seems my brain got stuck on the domain part. ^_^
How do you deal with submodules?
This is a limitation that I haven't really found a way through. I haven't tried too hard though because I've found that I can often just let the complicating set up have the 'plain' github.com host and use the custom host for the other set up. If I found that both professionally and personally I needed submodules, though, I'd probably be in trouble.

Also, if the submodules are public, the plain host will work fine because it doesn't matter what key you authenticate with.