Installation

Head over to the releases page on GitHub and grab the latest bin for your system OS and arch.

Drop it somewhere in your $PATH.

Quick Start

Create $HOME/.ssh/config.yml:

$HOME/.ssh/config.yml
---
global:
  IdentityFile: ~/.ssh/id_ed25519

local:
  Hosts:
    nas: 192.168.0.42
    pihole:
      Config:
        User: pi
      HostName: 192.168.0.2

remote:
  Config:
    Port: 42022
  Hosts:
    web1: web.example.org
    db: db.example.org

You’re now ready to generate your config.

sshush --source "~/.ssh/config.yml"

The result of this configuration is:

$HOME/.ssh/config
# Generated by sshush v2.0.0
# From /home/ben/.ssh/config.yml

# local
Host nas
    HostName 192.168.0.42

Host pihole
    Config OrderedDict([('User', 'pi')])
    HostName 192.168.0.2

# remote
Host web1
    Port 42022
    HostName web.example.org

Host db
    Port 42022
    HostName db.example.org

Host *
    IdentityFile ~/.ssh/id_ed25519