Below are the parsed Host entries from your SSH config. Edit them as needed.

{{ group.title }}

No hosts loaded. Please select a SSH config file above.

Note: This tool cannot directly save to ~/.ssh/config. After editing, download the updated file and manually replace your config file.

Introduction:

Secure Shell (SSH) clients read a plain-text config file that maps memorable host aliases to connection details such as hostname, port, and identity file. This indirection shortens command lines, enforces consistent options, and supports complex jump-host routing without repeating parameters across terminals.

The editor loads your existing configuration into a client-side reactive engine, parses every Host block, and lets you rename patterns, tweak options, or add new entries. A download button then regenerates a syntactically correct file you can overwrite on any device.

Use it when migrating keys, adding bastion routing, or decluttering wildcards; *always back up your original file before replacing production settings.*

Technical Details:

An SSH configuration is parsed line-by-line: each Host pattern header starts a stanza whose indented key–value pairs override client defaults for matching connections. Patterns may be exact names, wildcard globs, or negations, and later entries win on ties. Correct spacing, case-insensitive keys, and terminal newlines are essential for predictable behaviour.

  1. Segment text at newline boundaries.
  2. Detect lines that begin with Host ; start a new record.
  3. Split subsequent non-blank lines into key value.
  4. Normalise recognised keys; tag unknown ones as “Custom”.
  5. Group records by wildcard, domain, or leave ungrouped for display.
  6. On export, serialise every record and append a trailing newline.
Grouping TypeDisplay Outcome
NoneAll hosts in original order.
WildcardSeparates * patterns from literals.
DomainClusters by final domain label, others last.

Grouping only affects on-screen organisation; the downloaded file preserves the edited order exactly.

  • Host Pattern – alias or glob matched by the SSH client.
  • Key – recognised option or custom directive.
  • Value – parameter string supplied to the key.
  • Grouping Type – UI filter; none, wildcard, or domain.
  • Whitespace outside keys is ignored.
  • Duplicate keys keep the last edited occurrence.
  • Comments are discarded on re-export.
  • Negative patterns (!host) are treated as literals.
  • Empty patterns are skipped during export.
  • Custom keys without values generate an empty placeholder.
  • Tabs convert to single spaces on load.
  • Very large files may exhaust browser memory.

Behaviour mirrors the specification in RFC 4254 and the OpenSSH ssh_config manual, which define precedence, quoting, and wildcard rules.

This client-side process handles only local text and is unaffected by GDPR or HIPAA scopes.

Step-by-Step Guide:

Follow these steps to refactor your SSH settings safely.

  1. Click Select SSH Config File and choose your existing file.
  2. Review parsed hosts; pick a Group Hosts By option to reorder visually.
  3. Edit patterns, keys, or values directly inside each accordion panel.
  4. Use Add Line or Remove for individual directives.
  5. Add entirely new hosts with Add Host.
  6. Download the regenerated file, then replace ~/.ssh/config manually.

FAQ:

Why group hosts?

Grouping reveals duplicate patterns, distinguishes wildcard templates from concrete hosts, and speeds bulk edits in large inventories.

Is my data stored?

No. The entire operation runs locally; closing the tab discards all content immediately.

Can I keep comments?

Current version omits inline comments during export; copy comment lines back manually after download.

What about encrypted keys?

The editor never accesses private-key material; it only references file paths contained in IdentityFile directives.

Does order affect precedence?

Yes. SSH applies the first matching pattern; reorder hosts inside the interface to fine-tune priority before exporting.

Glossary:

Host Pattern
Alias or wildcard targeting one or more servers.
Directive
Key controlling SSH behaviour for the matched host.
Wildcard
* or ? characters matching multiple names.
Jump Host
Intermediate server forwarding connections to the target.
Identity File
Path to the public/private key pair used for authentication.

Files are processed locally in your browser; nothing is uploaded.