From bebebf486ad5c31750f054ad388232e148a3a667 Mon Sep 17 00:00:00 2001 From: dtoro Date: Tue, 2 Jun 2026 00:16:15 +0200 Subject: [PATCH] ssh-config: add gen-config.py + homelab ssh-config CLI subcommand --- bin/homelab | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/bin/homelab b/bin/homelab index ee1621c..d1c3a94 100755 --- a/bin/homelab +++ b/bin/homelab @@ -517,6 +517,19 @@ def cmd_ssh(args: argparse.Namespace) -> int: os.execvp(cmd[0], cmd) +def cmd_ssh_config(args: argparse.Namespace) -> int: + """Generate SSH config from inventory.yaml.""" + script = CONTEXT / "ssh" / "gen-config.py" + if not script.exists(): + die(f"ssh-config generator not found: {script}") + + cmd = [sys.executable or "python3", str(script)] + if args.install: + cmd.append("--install") + + return subprocess.call(cmd) + + def cmd_pct(args: argparse.Namespace) -> int: lxc = args.lxc inv = inventory() @@ -1459,6 +1472,12 @@ def main() -> int: sp.add_argument("command", nargs=argparse.REMAINDER) sp.set_defaults(func=cmd_ssh) + sp = sub.add_parser("ssh-config", + help="generate ~/.ssh/config.d/homelab from inventory.yaml") + sp.add_argument("--install", "-i", action="store_true", + help=f"write to ~/.ssh/config.d/homelab and wire Include into main config") + sp.set_defaults(func=cmd_ssh_config) + sp = sub.add_parser("pct", help="proxy pct commands via ssh to hubris") sp.add_argument("lxc") sp.add_argument("action")