CFG-09 · Remote access

SSH config builder

Add a host entry per server — alias, port, identity file, jump host — and get a ~/.ssh/config you can paste in and start using with ssh <alias>.

~/.ssh/config


  

Append this to ~/.ssh/config (create it with chmod 600 if it doesn't exist yet) — SSH ignores config files with overly permissive permissions.

What ProxyJump actually replaces

ProxyJump is the modern, one-line replacement for the old ProxyCommand ... nc %h %p incantation used to reach a server behind a bastion/jump host — set it to the jump host's alias (or user@host) and SSH handles the tunnel automatically. Anyone still copy-pasting a ProxyCommand line from a decade-old blog post can almost always replace it with one ProxyJump line.

Why a config alias beats remembering flags

A host entry turns ssh -i ~/.ssh/prod_key -p 2222 deploy@203.0.113.42 into ssh prod — and because tools like scp, rsync, and git all read the same file, the alias, port, user, and key apply everywhere automatically, not just to a manually-typed ssh command.

Further reading: Why Network Documentation Matters More Than You Think — how access details, not just diagrams, are part of a network's real documentation.
Why won't SSH read my config file?

Almost always file permissions — SSH silently ignores a config file that's group- or world-writable. Run chmod 600 ~/.ssh/config and confirm ownership is your own user, not root or another account.

What does ServerAliveInterval actually fix?

It sends a periodic keepalive packet so a NAT gateway or firewall doesn't silently drop an idle connection — the classic symptom it fixes is an SSH session that "freezes" after a few minutes of no typing, then eventually times out instead of just working.

Can one config file have multiple entries for overlapping hostnames?

Yes, and the first matching Host block wins for any given setting — SSH doesn't merge later blocks over earlier ones the way you might expect, so put more specific entries above more general ones (like a catch-all Host * block), not below.