Introduction

Premise

I wanted a way to manage my SSH config file that allowed me to define an inheritance based structure.

This allows you to group hosts together, apply common options and be able to override the options if needs be.

For example, maybe you have everything in DigitalOcean on a particular port with a particular user and SSH key, but everything in AWS is different. Or they share ports but not keys.

As programmers we don’t want to repeat ourselves, and managing one big SSH config file where we must specify things repeatedly is error prone.

It’s also not easy to share it with colleagues.

If keeping your shared sshush configs in a repo, you can choose to gitignore your globals or defaults, so that individuals can supply their own default keys and usernames.