Precedence
Perhaps you are wondering: what happens if some
configuration settings conflict? For instance, if you use the Compression
keyword to turn compression off,
and also the -C command-line option to turn it on,
who wins? In other words, who has precedence
?
For OpenSSH and Tectia clients, the order of precedence is, from strongest to weakest:
Command-line options
The user’s local client configuration file
The global client configuration file[105]
Command-line options have the highest precedence, overriding any
client configuration files. The user’s local file has next highest
precedence, and the global file has lowest precedence. So, in our
compression example, -C takes precedence over the
Compression
keyword, and compression
is enabled. If a setting isn’t changed by any keyword or command-line
option, the client’s default setting is used.
Remember that we’re speaking only of outgoing connections initiated by clients. Incoming connections, controlled by the SSH server, have other precedence rules. For servers, the user’s local configuration file definitely does not override the global file; otherwise, users could override global server settings, creating security holes and wreaking other havoc. [8.1.1]
[105] We don’t mention environment variables in this list because they don’t compete for precedence. Environment variables control different features that don’t overlap with command-line options and configuration files.
Get SSH, The Secure Shell: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.