Expand description
The hosts the user’s ~/.ssh/config names, for the connection picker
(P2 of SPEC_REMOTE_TERMINALS_AND_DURABLE_SESSIONS_2026_10_02.md).
Only names are read, never anything else in the file: a Host alias that
is a plain name (no *, ? or ! pattern) is a connection the user can
open, and ssh itself resolves everything about it. Include is followed
as ssh does, relative to ~/.ssh, with a * in the last part of the
path (Include config.d/*), the common form.
Constants§
- MAX_
INCLUDE_ 🔒DEPTH - How deep
Includeis followed (ssh’s own limit is 16; real configs use one or two levels).
Functions§
- expand_
include 🔒 - The files an
Includenames:~/is the home, a relative path is underssh_dir, and a*in the last part matches any run of characters there. - hosts
- The plain
Hostnames in the user’s ssh config, sorted, each once. - hosts_
in hostsfor a given config file, withIncluderelative tossh_dir.- is_
plain_ 🔒name - A name the user can open as it is: not a pattern, and nothing ssh’s own destination check (conn.rs) would refuse.
- read 🔒
- split_
line 🔒 - A config line’s keyword and its arguments:
Keyword arg ...orKeyword=arg ..., with double-quoted arguments kept whole.Nonefor a blank line or a comment.