• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1SSH_CONFIG(5)                 File Formats Manual                SSH_CONFIG(5)
2
3NAME
4     ssh_config M-bM-^@M-^S OpenSSH SSH client configuration files
5
6SYNOPSIS
7     ~/.ssh/config
8     /etc/ssh/ssh_config
9
10DESCRIPTION
11     ssh(1) obtains configuration data from the following sources in the
12     following order:
13
14           1.   command-line options
15           2.   user's configuration file (~/.ssh/config)
16           3.   system-wide configuration file (/etc/ssh/ssh_config)
17
18     For each parameter, the first obtained value will be used.  The
19     configuration files contain sections separated by Host specifications,
20     and that section is only applied for hosts that match one of the patterns
21     given in the specification.  The matched host name is usually the one
22     given on the command line (see the CanonicalizeHostname option for
23     exceptions).
24
25     Since the first obtained value for each parameter is used, more host-
26     specific declarations should be given near the beginning of the file, and
27     general defaults at the end.
28
29     The file contains keyword-argument pairs, one per line.  Lines starting
30     with M-bM-^@M-^X#M-bM-^@M-^Y and empty lines are interpreted as comments.  Arguments may
31     optionally be enclosed in double quotes (") in order to represent
32     arguments containing spaces.  Configuration options may be separated by
33     whitespace or optional whitespace and exactly one M-bM-^@M-^X=M-bM-^@M-^Y; the latter format
34     is useful to avoid the need to quote whitespace when specifying
35     configuration options using the ssh, scp, and sftp -o option.
36
37     The possible keywords and their meanings are as follows (note that
38     keywords are case-insensitive and arguments are case-sensitive):
39
40     Host    Restricts the following declarations (up to the next Host or
41             Match keyword) to be only for those hosts that match one of the
42             patterns given after the keyword.  If more than one pattern is
43             provided, they should be separated by whitespace.  A single M-bM-^@M-^X*M-bM-^@M-^Y
44             as a pattern can be used to provide global defaults for all
45             hosts.  The host is usually the hostname argument given on the
46             command line (see the CanonicalizeHostname keyword for
47             exceptions).
48
49             A pattern entry may be negated by prefixing it with an
50             exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y).  If a negated entry is matched, then the
51             Host entry is ignored, regardless of whether any other patterns
52             on the line match.  Negated matches are therefore useful to
53             provide exceptions for wildcard matches.
54
55             See PATTERNS for more information on patterns.
56
57     Match   Restricts the following declarations (up to the next Host or
58             Match keyword) to be used only when the conditions following the
59             Match keyword are satisfied.  Match conditions are specified
60             using one or more criteria or the single token all which always
61             matches.  The available criteria keywords are: canonical, exec,
62             host, originalhost, user, and localuser.  The all criteria must
63             appear alone or immediately after canonical.  Other criteria may
64             be combined arbitrarily.  All criteria but all and canonical
65             require an argument.  Criteria may be negated by prepending an
66             exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y).
67
68             The canonical keyword matches only when the configuration file is
69             being re-parsed after hostname canonicalization (see the
70             CanonicalizeHostname option.)  This may be useful to specify
71             conditions that work with canonical host names only.  The exec
72             keyword executes the specified command under the user's shell.
73             If the command returns a zero exit status then the condition is
74             considered true.  Commands containing whitespace characters must
75             be quoted.  Arguments to exec accept the tokens described in the
76             TOKENS section.
77
78             The other keywords' criteria must be single entries or comma-
79             separated lists and may use the wildcard and negation operators
80             described in the PATTERNS section.  The criteria for the host
81             keyword are matched against the target hostname, after any
82             substitution by the Hostname or CanonicalizeHostname options.
83             The originalhost keyword matches against the hostname as it was
84             specified on the command-line.  The user keyword matches against
85             the target username on the remote host.  The localuser keyword
86             matches against the name of the local user running ssh(1) (this
87             keyword may be useful in system-wide ssh_config files).
88
89     AddKeysToAgent
90             Specifies whether keys should be automatically added to a running
91             ssh-agent(1).  If this option is set to yes and a key is loaded
92             from a file, the key and its passphrase are added to the agent
93             with the default lifetime, as if by ssh-add(1).  If this option
94             is set to ask, ssh(1) will require confirmation using the
95             SSH_ASKPASS program before adding a key (see ssh-add(1) for
96             details).  If this option is set to confirm, each use of the key
97             must be confirmed, as if the -c option was specified to
98             ssh-add(1).  If this option is set to no, no keys are added to
99             the agent.  The argument must be yes, confirm, ask, or no (the
100             default).
101
102     AddressFamily
103             Specifies which address family to use when connecting.  Valid
104             arguments are any (the default), inet (use IPv4 only), or inet6
105             (use IPv6 only).
106
107     BatchMode
108             If set to yes, passphrase/password querying will be disabled.
109             This option is useful in scripts and other batch jobs where no
110             user is present to supply the password.  The argument must be yes
111             or no (the default).
112
113     BindAddress
114             Use the specified address on the local machine as the source
115             address of the connection.  Only useful on systems with more than
116             one address.  Note that this option does not work if
117             UsePrivilegedPort is set to yes.
118
119     CanonicalDomains
120             When CanonicalizeHostname is enabled, this option specifies the
121             list of domain suffixes in which to search for the specified
122             destination host.
123
124     CanonicalizeFallbackLocal
125             Specifies whether to fail with an error when hostname
126             canonicalization fails.  The default, yes, will attempt to look
127             up the unqualified hostname using the system resolver's search
128             rules.  A value of no will cause ssh(1) to fail instantly if
129             CanonicalizeHostname is enabled and the target hostname cannot be
130             found in any of the domains specified by CanonicalDomains.
131
132     CanonicalizeHostname
133             Controls whether explicit hostname canonicalization is performed.
134             The default, no, is not to perform any name rewriting and let the
135             system resolver handle all hostname lookups.  If set to yes then,
136             for connections that do not use a ProxyCommand, ssh(1) will
137             attempt to canonicalize the hostname specified on the command
138             line using the CanonicalDomains suffixes and
139             CanonicalizePermittedCNAMEs rules.  If CanonicalizeHostname is
140             set to always, then canonicalization is applied to proxied
141             connections too.
142
143             If this option is enabled, then the configuration files are
144             processed again using the new target name to pick up any new
145             configuration in matching Host and Match stanzas.
146
147     CanonicalizeMaxDots
148             Specifies the maximum number of dot characters in a hostname
149             before canonicalization is disabled.  The default, 1, allows a
150             single dot (i.e. hostname.subdomain).
151
152     CanonicalizePermittedCNAMEs
153             Specifies rules to determine whether CNAMEs should be followed
154             when canonicalizing hostnames.  The rules consist of one or more
155             arguments of source_domain_list:target_domain_list, where
156             source_domain_list is a pattern-list of domains that may follow
157             CNAMEs in canonicalization, and target_domain_list is a pattern-
158             list of domains that they may resolve to.
159
160             For example, "*.a.example.com:*.b.example.com,*.c.example.com"
161             will allow hostnames matching "*.a.example.com" to be
162             canonicalized to names in the "*.b.example.com" or
163             "*.c.example.com" domains.
164
165     CertificateFile
166             Specifies a file from which the user's certificate is read.  A
167             corresponding private key must be provided separately in order to
168             use this certificate either from an IdentityFile directive or -i
169             flag to ssh(1), via ssh-agent(1), or via a PKCS11Provider.
170
171             Arguments to CertificateFile may use the tilde syntax to refer to
172             a user's home directory or the tokens described in the TOKENS
173             section.
174
175             It is possible to have multiple certificate files specified in
176             configuration files; these certificates will be tried in
177             sequence.  Multiple CertificateFile directives will add to the
178             list of certificates used for authentication.
179
180     ChallengeResponseAuthentication
181             Specifies whether to use challenge-response authentication.  The
182             argument to this keyword must be yes (the default) or no.
183
184     CheckHostIP
185             If set to yes (the default), ssh(1) will additionally check the
186             host IP address in the known_hosts file.  This allows it to
187             detect if a host key changed due to DNS spoofing and will add
188             addresses of destination hosts to ~/.ssh/known_hosts in the
189             process, regardless of the setting of StrictHostKeyChecking.  If
190             the option is set to no, the check will not be executed.
191
192     Cipher  Specifies the cipher to use for encrypting the session in
193             protocol version 1.  Currently, blowfish, 3des (the default), and
194             des are supported, though des is only supported in the ssh(1)
195             client for interoperability with legacy protocol 1
196             implementations; its use is strongly discouraged due to
197             cryptographic weaknesses.
198
199     Ciphers
200             Specifies the ciphers allowed for protocol version 2 in order of
201             preference.  Multiple ciphers must be comma-separated.  If the
202             specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the specified
203             ciphers will be appended to the default set instead of replacing
204             them.  If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y character, then
205             the specified ciphers (including wildcards) will be removed from
206             the default set instead of replacing them.
207
208             The supported ciphers are:
209
210                   3des-cbc
211                   aes128-cbc
212                   aes192-cbc
213                   aes256-cbc
214                   aes128-ctr
215                   aes192-ctr
216                   aes256-ctr
217                   aes128-gcm@openssh.com
218                   aes256-gcm@openssh.com
219                   arcfour
220                   arcfour128
221                   arcfour256
222                   blowfish-cbc
223                   cast128-cbc
224                   chacha20-poly1305@openssh.com
225
226             The default is:
227
228                   chacha20-poly1305@openssh.com,
229                   aes128-ctr,aes192-ctr,aes256-ctr,
230                   aes128-gcm@openssh.com,aes256-gcm@openssh.com,
231                   aes128-cbc,aes192-cbc,aes256-cbc
232
233             The list of available ciphers may also be obtained using "ssh -Q
234             cipher".
235
236     ClearAllForwardings
237             Specifies that all local, remote, and dynamic port forwardings
238             specified in the configuration files or on the command line be
239             cleared.  This option is primarily useful when used from the
240             ssh(1) command line to clear port forwardings set in
241             configuration files, and is automatically set by scp(1) and
242             sftp(1).  The argument must be yes or no (the default).
243
244     Compression
245             Specifies whether to use compression.  The argument must be yes
246             or no (the default).
247
248     CompressionLevel
249             Specifies the compression level to use if compression is enabled.
250             The argument must be an integer from 1 (fast) to 9 (slow, best).
251             The default level is 6, which is good for most applications.  The
252             meaning of the values is the same as in gzip(1).  Note that this
253             option applies to protocol version 1 only.
254
255     ConnectionAttempts
256             Specifies the number of tries (one per second) to make before
257             exiting.  The argument must be an integer.  This may be useful in
258             scripts if the connection sometimes fails.  The default is 1.
259
260     ConnectTimeout
261             Specifies the timeout (in seconds) used when connecting to the
262             SSH server, instead of using the default system TCP timeout.
263             This value is used only when the target is down or really
264             unreachable, not when it refuses the connection.
265
266     ControlMaster
267             Enables the sharing of multiple sessions over a single network
268             connection.  When set to yes, ssh(1) will listen for connections
269             on a control socket specified using the ControlPath argument.
270             Additional sessions can connect to this socket using the same
271             ControlPath with ControlMaster set to no (the default).  These
272             sessions will try to reuse the master instance's network
273             connection rather than initiating new ones, but will fall back to
274             connecting normally if the control socket does not exist, or is
275             not listening.
276
277             Setting this to ask will cause ssh(1) to listen for control
278             connections, but require confirmation using ssh-askpass(1).  If
279             the ControlPath cannot be opened, ssh(1) will continue without
280             connecting to a master instance.
281
282             X11 and ssh-agent(1) forwarding is supported over these
283             multiplexed connections, however the display and agent forwarded
284             will be the one belonging to the master connection i.e. it is not
285             possible to forward multiple displays or agents.
286
287             Two additional options allow for opportunistic multiplexing: try
288             to use a master connection but fall back to creating a new one if
289             one does not already exist.  These options are: auto and autoask.
290             The latter requires confirmation like the ask option.
291
292     ControlPath
293             Specify the path to the control socket used for connection
294             sharing as described in the ControlMaster section above or the
295             string none to disable connection sharing.  Arguments to
296             ControlPath may use the tilde syntax to refer to a user's home
297             directory or the tokens described in the TOKENS section.  It is
298             recommended that any ControlPath used for opportunistic
299             connection sharing include at least %h, %p, and %r (or
300             alternatively %C) and be placed in a directory that is not
301             writable by other users.  This ensures that shared connections
302             are uniquely identified.
303
304     ControlPersist
305             When used in conjunction with ControlMaster, specifies that the
306             master connection should remain open in the background (waiting
307             for future client connections) after the initial client
308             connection has been closed.  If set to no, then the master
309             connection will not be placed into the background, and will close
310             as soon as the initial client connection is closed.  If set to
311             yes or 0, then the master connection will remain in the
312             background indefinitely (until killed or closed via a mechanism
313             such as the "ssh -O exit").  If set to a time in seconds, or a
314             time in any of the formats documented in sshd_config(5), then the
315             backgrounded master connection will automatically terminate after
316             it has remained idle (with no client connections) for the
317             specified time.
318
319     DynamicForward
320             Specifies that a TCP port on the local machine be forwarded over
321             the secure channel, and the application protocol is then used to
322             determine where to connect to from the remote machine.
323
324             The argument must be [bind_address:]port.  IPv6 addresses can be
325             specified by enclosing addresses in square brackets.  By default,
326             the local port is bound in accordance with the GatewayPorts
327             setting.  However, an explicit bind_address may be used to bind
328             the connection to a specific address.  The bind_address of
329             localhost indicates that the listening port be bound for local
330             use only, while an empty address or M-bM-^@M-^X*M-bM-^@M-^Y indicates that the port
331             should be available from all interfaces.
332
333             Currently the SOCKS4 and SOCKS5 protocols are supported, and
334             ssh(1) will act as a SOCKS server.  Multiple forwardings may be
335             specified, and additional forwardings can be given on the command
336             line.  Only the superuser can forward privileged ports.
337
338     EnableSSHKeysign
339             Setting this option to yes in the global client configuration
340             file /etc/ssh/ssh_config enables the use of the helper program
341             ssh-keysign(8) during HostbasedAuthentication.  The argument must
342             be yes or no (the default).  This option should be placed in the
343             non-hostspecific section.  See ssh-keysign(8) for more
344             information.
345
346     EscapeChar
347             Sets the escape character (default: M-bM-^@M-^X~M-bM-^@M-^Y).  The escape character
348             can also be set on the command line.  The argument should be a
349             single character, M-bM-^@M-^X^M-bM-^@M-^Y followed by a letter, or none to disable
350             the escape character entirely (making the connection transparent
351             for binary data).
352
353     ExitOnForwardFailure
354             Specifies whether ssh(1) should terminate the connection if it
355             cannot set up all requested dynamic, tunnel, local, and remote
356             port forwardings, (e.g. if either end is unable to bind and
357             listen on a specified port).  Note that ExitOnForwardFailure does
358             not apply to connections made over port forwardings and will not,
359             for example, cause ssh(1) to exit if TCP connections to the
360             ultimate forwarding destination fail.  The argument must be yes
361             or no (the default).
362
363     FingerprintHash
364             Specifies the hash algorithm used when displaying key
365             fingerprints.  Valid options are: md5 and sha256 (the default).
366
367     ForwardAgent
368             Specifies whether the connection to the authentication agent (if
369             any) will be forwarded to the remote machine.  The argument must
370             be yes or no (the default).
371
372             Agent forwarding should be enabled with caution.  Users with the
373             ability to bypass file permissions on the remote host (for the
374             agent's Unix-domain socket) can access the local agent through
375             the forwarded connection.  An attacker cannot obtain key material
376             from the agent, however they can perform operations on the keys
377             that enable them to authenticate using the identities loaded into
378             the agent.
379
380     ForwardX11
381             Specifies whether X11 connections will be automatically
382             redirected over the secure channel and DISPLAY set.  The argument
383             must be yes or no (the default).
384
385             X11 forwarding should be enabled with caution.  Users with the
386             ability to bypass file permissions on the remote host (for the
387             user's X11 authorization database) can access the local X11
388             display through the forwarded connection.  An attacker may then
389             be able to perform activities such as keystroke monitoring if the
390             ForwardX11Trusted option is also enabled.
391
392     ForwardX11Timeout
393             Specify a timeout for untrusted X11 forwarding using the format
394             described in the TIME FORMATS section of sshd_config(5).  X11
395             connections received by ssh(1) after this time will be refused.
396             The default is to disable untrusted X11 forwarding after twenty
397             minutes has elapsed.
398
399     ForwardX11Trusted
400             If this option is set to yes, remote X11 clients will have full
401             access to the original X11 display.
402
403             If this option is set to no (the default), remote X11 clients
404             will be considered untrusted and prevented from stealing or
405             tampering with data belonging to trusted X11 clients.
406             Furthermore, the xauth(1) token used for the session will be set
407             to expire after 20 minutes.  Remote clients will be refused
408             access after this time.
409
410             See the X11 SECURITY extension specification for full details on
411             the restrictions imposed on untrusted clients.
412
413     GatewayPorts
414             Specifies whether remote hosts are allowed to connect to local
415             forwarded ports.  By default, ssh(1) binds local port forwardings
416             to the loopback address.  This prevents other remote hosts from
417             connecting to forwarded ports.  GatewayPorts can be used to
418             specify that ssh should bind local port forwardings to the
419             wildcard address, thus allowing remote hosts to connect to
420             forwarded ports.  The argument must be yes or no (the default).
421
422     GlobalKnownHostsFile
423             Specifies one or more files to use for the global host key
424             database, separated by whitespace.  The default is
425             /etc/ssh/ssh_known_hosts, /etc/ssh/ssh_known_hosts2.
426
427     GSSAPIAuthentication
428             Specifies whether user authentication based on GSSAPI is allowed.
429             The default is no.
430
431     GSSAPIDelegateCredentials
432             Forward (delegate) credentials to the server.  The default is no.
433
434     HashKnownHosts
435             Indicates that ssh(1) should hash host names and addresses when
436             they are added to ~/.ssh/known_hosts.  These hashed names may be
437             used normally by ssh(1) and sshd(8), but they do not reveal
438             identifying information should the file's contents be disclosed.
439             The default is no.  Note that existing names and addresses in
440             known hosts files will not be converted automatically, but may be
441             manually hashed using ssh-keygen(1).
442
443     HostbasedAuthentication
444             Specifies whether to try rhosts based authentication with public
445             key authentication.  The argument must be yes or no (the
446             default).
447
448     HostbasedKeyTypes
449             Specifies the key types that will be used for hostbased
450             authentication as a comma-separated pattern list.  Alternately if
451             the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the
452             specified key types will be appended to the default set instead
453             of replacing them.  If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y
454             character, then the specified key types (including wildcards)
455             will be removed from the default set instead of replacing them.
456             The default for this option is:
457
458                ecdsa-sha2-nistp256-cert-v01@openssh.com,
459                ecdsa-sha2-nistp384-cert-v01@openssh.com,
460                ecdsa-sha2-nistp521-cert-v01@openssh.com,
461                ssh-ed25519-cert-v01@openssh.com,
462                ssh-rsa-cert-v01@openssh.com,
463                ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
464                ssh-ed25519,ssh-rsa
465
466             The -Q option of ssh(1) may be used to list supported key types.
467
468     HostKeyAlgorithms
469             Specifies the host key algorithms that the client wants to use in
470             order of preference.  Alternately if the specified value begins
471             with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the specified key types will be
472             appended to the default set instead of replacing them.  If the
473             specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y character, then the specified
474             key types (including wildcards) will be removed from the default
475             set instead of replacing them.  The default for this option is:
476
477                ecdsa-sha2-nistp256-cert-v01@openssh.com,
478                ecdsa-sha2-nistp384-cert-v01@openssh.com,
479                ecdsa-sha2-nistp521-cert-v01@openssh.com,
480                ssh-ed25519-cert-v01@openssh.com,
481                ssh-rsa-cert-v01@openssh.com,
482                ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
483                ssh-ed25519,ssh-rsa
484
485             If hostkeys are known for the destination host then this default
486             is modified to prefer their algorithms.
487
488             The list of available key types may also be obtained using "ssh
489             -Q key".
490
491     HostKeyAlias
492             Specifies an alias that should be used instead of the real host
493             name when looking up or saving the host key in the host key
494             database files.  This option is useful for tunneling SSH
495             connections or for multiple servers running on a single host.
496
497     HostName
498             Specifies the real host name to log into.  This can be used to
499             specify nicknames or abbreviations for hosts.  Arguments to
500             HostName accept the tokens described in the TOKENS section.
501             Numeric IP addresses are also permitted (both on the command line
502             and in HostName specifications).  The default is the name given
503             on the command line.
504
505     IdentitiesOnly
506             Specifies that ssh(1) should only use the authentication identity
507             and certificate files explicitly configured in the ssh_config
508             files or passed on the ssh(1) command-line, even if ssh-agent(1)
509             or a PKCS11Provider offers more identities.  The argument to this
510             keyword must be yes or no (the default).  This option is intended
511             for situations where ssh-agent offers many different identities.
512
513     IdentityAgent
514             Specifies the UNIX-domain socket used to communicate with the
515             authentication agent.
516
517             This option overrides the SSH_AUTH_SOCK environment variable and
518             can be used to select a specific agent.  Setting the socket name
519             to none disables the use of an authentication agent.  If the
520             string "SSH_AUTH_SOCK" is specified, the location of the socket
521             will be read from the SSH_AUTH_SOCK environment variable.
522
523             Arguments to IdentityAgent may use the tilde syntax to refer to a
524             user's home directory or the tokens described in the TOKENS
525             section.
526
527     IdentityFile
528             Specifies a file from which the user's DSA, ECDSA, Ed25519 or RSA
529             authentication identity is read.  The default is ~/.ssh/identity
530             for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa,
531             ~/.ssh/id_ed25519 and ~/.ssh/id_rsa for protocol version 2.
532             Additionally, any identities represented by the authentication
533             agent will be used for authentication unless IdentitiesOnly is
534             set.  If no certificates have been explicitly specified by
535             CertificateFile, ssh(1) will try to load certificate information
536             from the filename obtained by appending -cert.pub to the path of
537             a specified IdentityFile.
538
539             Arguments to IdentityFile may use the tilde syntax to refer to a
540             user's home directory or the tokens described in the TOKENS
541             section.
542
543             It is possible to have multiple identity files specified in
544             configuration files; all these identities will be tried in
545             sequence.  Multiple IdentityFile directives will add to the list
546             of identities tried (this behaviour differs from that of other
547             configuration directives).
548
549             IdentityFile may be used in conjunction with IdentitiesOnly to
550             select which identities in an agent are offered during
551             authentication.  IdentityFile may also be used in conjunction
552             with CertificateFile in order to provide any certificate also
553             needed for authentication with the identity.
554
555     IgnoreUnknown
556             Specifies a pattern-list of unknown options to be ignored if they
557             are encountered in configuration parsing.  This may be used to
558             suppress errors if ssh_config contains options that are
559             unrecognised by ssh(1).  It is recommended that IgnoreUnknown be
560             listed early in the configuration file as it will not be applied
561             to unknown options that appear before it.
562
563     Include
564             Include the specified configuration file(s).  Multiple pathnames
565             may be specified and each pathname may contain glob(3) wildcards
566             and, for user configurations, shell-like M-bM-^@M-^X~M-bM-^@M-^Y references to user
567             home directories.  Files without absolute paths are assumed to be
568             in ~/.ssh if included in a user configuration file or /etc/ssh if
569             included from the system configuration file.  Include directive
570             may appear inside a Match or Host block to perform conditional
571             inclusion.
572
573     IPQoS   Specifies the IPv4 type-of-service or DSCP class for connections.
574             Accepted values are af11, af12, af13, af21, af22, af23, af31,
575             af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5, cs6,
576             cs7, ef, lowdelay, throughput, reliability, or a numeric value.
577             This option may take one or two arguments, separated by
578             whitespace.  If one argument is specified, it is used as the
579             packet class unconditionally.  If two values are specified, the
580             first is automatically selected for interactive sessions and the
581             second for non-interactive sessions.  The default is lowdelay for
582             interactive sessions and throughput for non-interactive sessions.
583
584     KbdInteractiveAuthentication
585             Specifies whether to use keyboard-interactive authentication.
586             The argument to this keyword must be yes (the default) or no.
587
588     KbdInteractiveDevices
589             Specifies the list of methods to use in keyboard-interactive
590             authentication.  Multiple method names must be comma-separated.
591             The default is to use the server specified list.  The methods
592             available vary depending on what the server supports.  For an
593             OpenSSH server, it may be zero or more of: bsdauth, pam, and
594             skey.
595
596     KexAlgorithms
597             Specifies the available KEX (Key Exchange) algorithms.  Multiple
598             algorithms must be comma-separated.  Alternately if the specified
599             value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the specified methods
600             will be appended to the default set instead of replacing them.
601             If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y character, then the
602             specified methods (including wildcards) will be removed from the
603             default set instead of replacing them.  The default is:
604
605                   curve25519-sha256,curve25519-sha256@libssh.org,
606                   ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
607                   diffie-hellman-group-exchange-sha256,
608                   diffie-hellman-group-exchange-sha1,
609                   diffie-hellman-group14-sha1
610
611             The list of available key exchange algorithms may also be
612             obtained using "ssh -Q kex".
613
614     LocalCommand
615             Specifies a command to execute on the local machine after
616             successfully connecting to the server.  The command string
617             extends to the end of the line, and is executed with the user's
618             shell.  Arguments to LocalCommand accept the tokens described in
619             the TOKENS section.
620
621             The command is run synchronously and does not have access to the
622             session of the ssh(1) that spawned it.  It should not be used for
623             interactive commands.
624
625             This directive is ignored unless PermitLocalCommand has been
626             enabled.
627
628     LocalForward
629             Specifies that a TCP port on the local machine be forwarded over
630             the secure channel to the specified host and port from the remote
631             machine.  The first argument must be [bind_address:]port and the
632             second argument must be host:hostport.  IPv6 addresses can be
633             specified by enclosing addresses in square brackets.  Multiple
634             forwardings may be specified, and additional forwardings can be
635             given on the command line.  Only the superuser can forward
636             privileged ports.  By default, the local port is bound in
637             accordance with the GatewayPorts setting.  However, an explicit
638             bind_address may be used to bind the connection to a specific
639             address.  The bind_address of localhost indicates that the
640             listening port be bound for local use only, while an empty
641             address or M-bM-^@M-^X*M-bM-^@M-^Y indicates that the port should be available from
642             all interfaces.
643
644     LogLevel
645             Gives the verbosity level that is used when logging messages from
646             ssh(1).  The possible values are: QUIET, FATAL, ERROR, INFO,
647             VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.  The default is INFO.
648             DEBUG and DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify
649             higher levels of verbose output.
650
651     MACs    Specifies the MAC (message authentication code) algorithms in
652             order of preference.  The MAC algorithm is used for data
653             integrity protection.  Multiple algorithms must be comma-
654             separated.  If the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character,
655             then the specified algorithms will be appended to the default set
656             instead of replacing them.  If the specified value begins with a
657             M-bM-^@M-^X-M-bM-^@M-^Y character, then the specified algorithms (including
658             wildcards) will be removed from the default set instead of
659             replacing them.
660
661             The algorithms that contain "-etm" calculate the MAC after
662             encryption (encrypt-then-mac).  These are considered safer and
663             their use recommended.
664
665             The default is:
666
667                   umac-64-etm@openssh.com,umac-128-etm@openssh.com,
668                   hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
669                   hmac-sha1-etm@openssh.com,
670                   umac-64@openssh.com,umac-128@openssh.com,
671                   hmac-sha2-256,hmac-sha2-512,hmac-sha1
672
673             The list of available MAC algorithms may also be obtained using
674             "ssh -Q mac".
675
676     NoHostAuthenticationForLocalhost
677             This option can be used if the home directory is shared across
678             machines.  In this case localhost will refer to a different
679             machine on each of the machines and the user will get many
680             warnings about changed host keys.  However, this option disables
681             host authentication for localhost.  The argument to this keyword
682             must be yes or no (the default).
683
684     NumberOfPasswordPrompts
685             Specifies the number of password prompts before giving up.  The
686             argument to this keyword must be an integer.  The default is 3.
687
688     PasswordAuthentication
689             Specifies whether to use password authentication.  The argument
690             to this keyword must be yes (the default) or no.
691
692     PermitLocalCommand
693             Allow local command execution via the LocalCommand option or
694             using the !command escape sequence in ssh(1).  The argument must
695             be yes or no (the default).
696
697     PKCS11Provider
698             Specifies which PKCS#11 provider to use.  The argument to this
699             keyword is the PKCS#11 shared library ssh(1) should use to
700             communicate with a PKCS#11 token providing the user's private RSA
701             key.
702
703     Port    Specifies the port number to connect on the remote host.  The
704             default is 22.
705
706     PreferredAuthentications
707             Specifies the order in which the client should try authentication
708             methods.  This allows a client to prefer one method (e.g.
709             keyboard-interactive) over another method (e.g. password).  The
710             default is:
711
712                   gssapi-with-mic,hostbased,publickey,
713                   keyboard-interactive,password
714
715     Protocol
716             Specifies the protocol versions ssh(1) should support in order of
717             preference.  The possible values are 1 and 2.  Multiple versions
718             must be comma-separated.  When this option is set to 2,1 ssh will
719             try version 2 and fall back to version 1 if version 2 is not
720             available.  The default is version 2.  Protocol 1 suffers from a
721             number of cryptographic weaknesses and should not be used.  It is
722             only offered to support legacy devices.
723
724     ProxyCommand
725             Specifies the command to use to connect to the server.  The
726             command string extends to the end of the line, and is executed
727             using the user's shell M-bM-^@M-^XexecM-bM-^@M-^Y directive to avoid a lingering
728             shell process.
729
730             Arguments to ProxyCommand accept the tokens described in the
731             TOKENS section.  The command can be basically anything, and
732             should read from its standard input and write to its standard
733             output.  It should eventually connect an sshd(8) server running
734             on some machine, or execute sshd -i somewhere.  Host key
735             management will be done using the HostName of the host being
736             connected (defaulting to the name typed by the user).  Setting
737             the command to none disables this option entirely.  Note that
738             CheckHostIP is not available for connects with a proxy command.
739
740             This directive is useful in conjunction with nc(1) and its proxy
741             support.  For example, the following directive would connect via
742             an HTTP proxy at 192.0.2.0:
743
744                ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
745
746     ProxyJump
747             Specifies one or more jump proxies as [user@]host[:port].
748             Multiple proxies may be separated by comma characters and will be
749             visited sequentially.  Setting this option will cause ssh(1) to
750             connect to the target host by first making a ssh(1) connection to
751             the specified ProxyJump host and then establishing a TCP
752             forwarding to the ultimate target from there.
753
754             Note that this option will compete with the ProxyCommand option -
755             whichever is specified first will prevent later instances of the
756             other from taking effect.
757
758     ProxyUseFdpass
759             Specifies that ProxyCommand will pass a connected file descriptor
760             back to ssh(1) instead of continuing to execute and pass data.
761             The default is no.
762
763     PubkeyAcceptedKeyTypes
764             Specifies the key types that will be used for public key
765             authentication as a comma-separated pattern list.  Alternately if
766             the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the key
767             types after it will be appended to the default instead of
768             replacing it.  If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y
769             character, then the specified key types (including wildcards)
770             will be removed from the default set instead of replacing them.
771             The default for this option is:
772
773                ecdsa-sha2-nistp256-cert-v01@openssh.com,
774                ecdsa-sha2-nistp384-cert-v01@openssh.com,
775                ecdsa-sha2-nistp521-cert-v01@openssh.com,
776                ssh-ed25519-cert-v01@openssh.com,
777                ssh-rsa-cert-v01@openssh.com,
778                ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
779                ssh-ed25519,ssh-rsa
780
781             The list of available key types may also be obtained using "ssh
782             -Q key".
783
784     PubkeyAuthentication
785             Specifies whether to try public key authentication.  The argument
786             to this keyword must be yes (the default) or no.
787
788     RekeyLimit
789             Specifies the maximum amount of data that may be transmitted
790             before the session key is renegotiated, optionally followed a
791             maximum amount of time that may pass before the session key is
792             renegotiated.  The first argument is specified in bytes and may
793             have a suffix of M-bM-^@M-^XKM-bM-^@M-^Y, M-bM-^@M-^XMM-bM-^@M-^Y, or M-bM-^@M-^XGM-bM-^@M-^Y to indicate Kilobytes,
794             Megabytes, or Gigabytes, respectively.  The default is between
795             M-bM-^@M-^X1GM-bM-^@M-^Y and M-bM-^@M-^X4GM-bM-^@M-^Y, depending on the cipher.  The optional second
796             value is specified in seconds and may use any of the units
797             documented in the TIME FORMATS section of sshd_config(5).  The
798             default value for RekeyLimit is default none, which means that
799             rekeying is performed after the cipher's default amount of data
800             has been sent or received and no time based rekeying is done.
801
802     RemoteForward
803             Specifies that a TCP port on the remote machine be forwarded over
804             the secure channel to the specified host and port from the local
805             machine.  The first argument must be [bind_address:]port and the
806             second argument must be host:hostport.  IPv6 addresses can be
807             specified by enclosing addresses in square brackets.  Multiple
808             forwardings may be specified, and additional forwardings can be
809             given on the command line.  Privileged ports can be forwarded
810             only when logging in as root on the remote machine.
811
812             If the port argument is 0, the listen port will be dynamically
813             allocated on the server and reported to the client at run time.
814
815             If the bind_address is not specified, the default is to only bind
816             to loopback addresses.  If the bind_address is M-bM-^@M-^X*M-bM-^@M-^Y or an empty
817             string, then the forwarding is requested to listen on all
818             interfaces.  Specifying a remote bind_address will only succeed
819             if the server's GatewayPorts option is enabled (see
820             sshd_config(5)).
821
822     RequestTTY
823             Specifies whether to request a pseudo-tty for the session.  The
824             argument may be one of: no (never request a TTY), yes (always
825             request a TTY when standard input is a TTY), force (always
826             request a TTY) or auto (request a TTY when opening a login
827             session).  This option mirrors the -t and -T flags for ssh(1).
828
829     RevokedHostKeys
830             Specifies revoked host public keys.  Keys listed in this file
831             will be refused for host authentication.  Note that if this file
832             does not exist or is not readable, then host authentication will
833             be refused for all hosts.  Keys may be specified as a text file,
834             listing one public key per line, or as an OpenSSH Key Revocation
835             List (KRL) as generated by ssh-keygen(1).  For more information
836             on KRLs, see the KEY REVOCATION LISTS section in ssh-keygen(1).
837
838     RhostsRSAAuthentication
839             Specifies whether to try rhosts based authentication with RSA
840             host authentication.  The argument must be yes or no (the
841             default).  This option applies to protocol version 1 only and
842             requires ssh(1) to be setuid root.
843
844     RSAAuthentication
845             Specifies whether to try RSA authentication.  The argument to
846             this keyword must be yes (the default) or no.  RSA authentication
847             will only be attempted if the identity file exists, or an
848             authentication agent is running.  Note that this option applies
849             to protocol version 1 only.
850
851     SendEnv
852             Specifies what variables from the local environ(7) should be sent
853             to the server.  The server must also support it, and the server
854             must be configured to accept these environment variables.  Note
855             that the TERM environment variable is always sent whenever a
856             pseudo-terminal is requested as it is required by the protocol.
857             Refer to AcceptEnv in sshd_config(5) for how to configure the
858             server.  Variables are specified by name, which may contain
859             wildcard characters.  Multiple environment variables may be
860             separated by whitespace or spread across multiple SendEnv
861             directives.  The default is not to send any environment
862             variables.
863
864             See PATTERNS for more information on patterns.
865
866     ServerAliveCountMax
867             Sets the number of server alive messages (see below) which may be
868             sent without ssh(1) receiving any messages back from the server.
869             If this threshold is reached while server alive messages are
870             being sent, ssh will disconnect from the server, terminating the
871             session.  It is important to note that the use of server alive
872             messages is very different from TCPKeepAlive (below).  The server
873             alive messages are sent through the encrypted channel and
874             therefore will not be spoofable.  The TCP keepalive option
875             enabled by TCPKeepAlive is spoofable.  The server alive mechanism
876             is valuable when the client or server depend on knowing when a
877             connection has become inactive.
878
879             The default value is 3.  If, for example, ServerAliveInterval
880             (see below) is set to 15 and ServerAliveCountMax is left at the
881             default, if the server becomes unresponsive, ssh will disconnect
882             after approximately 45 seconds.
883
884     ServerAliveInterval
885             Sets a timeout interval in seconds after which if no data has
886             been received from the server, ssh(1) will send a message through
887             the encrypted channel to request a response from the server.  The
888             default is 0, indicating that these messages will not be sent to
889             the server.
890
891     StreamLocalBindMask
892             Sets the octal file creation mode mask (umask) used when creating
893             a Unix-domain socket file for local or remote port forwarding.
894             This option is only used for port forwarding to a Unix-domain
895             socket file.
896
897             The default value is 0177, which creates a Unix-domain socket
898             file that is readable and writable only by the owner.  Note that
899             not all operating systems honor the file mode on Unix-domain
900             socket files.
901
902     StreamLocalBindUnlink
903             Specifies whether to remove an existing Unix-domain socket file
904             for local or remote port forwarding before creating a new one.
905             If the socket file already exists and StreamLocalBindUnlink is
906             not enabled, ssh will be unable to forward the port to the Unix-
907             domain socket file.  This option is only used for port forwarding
908             to a Unix-domain socket file.
909
910             The argument must be yes or no (the default).
911
912     StrictHostKeyChecking
913             If this flag is set to yes, ssh(1) will never automatically add
914             host keys to the ~/.ssh/known_hosts file, and refuses to connect
915             to hosts whose host key has changed.  This provides maximum
916             protection against trojan horse attacks, though it can be
917             annoying when the /etc/ssh/ssh_known_hosts file is poorly
918             maintained or when connections to new hosts are frequently made.
919             This option forces the user to manually add all new hosts.  If
920             this flag is set to no, ssh will automatically add new host keys
921             to the user known hosts files.  If this flag is set to ask (the
922             default), new host keys will be added to the user known host
923             files only after the user has confirmed that is what they really
924             want to do, and ssh will refuse to connect to hosts whose host
925             key has changed.  The host keys of known hosts will be verified
926             automatically in all cases.
927
928     TCPKeepAlive
929             Specifies whether the system should send TCP keepalive messages
930             to the other side.  If they are sent, death of the connection or
931             crash of one of the machines will be properly noticed.  However,
932             this means that connections will die if the route is down
933             temporarily, and some people find it annoying.
934
935             The default is yes (to send TCP keepalive messages), and the
936             client will notice if the network goes down or the remote host
937             dies.  This is important in scripts, and many users want it too.
938
939             To disable TCP keepalive messages, the value should be set to no.
940
941     Tunnel  Request tun(4) device forwarding between the client and the
942             server.  The argument must be yes, point-to-point (layer 3),
943             ethernet (layer 2), or no (the default).  Specifying yes requests
944             the default tunnel mode, which is point-to-point.
945
946     TunnelDevice
947             Specifies the tun(4) devices to open on the client (local_tun)
948             and the server (remote_tun).
949
950             The argument must be local_tun[:remote_tun].  The devices may be
951             specified by numerical ID or the keyword any, which uses the next
952             available tunnel device.  If remote_tun is not specified, it
953             defaults to any.  The default is any:any.
954
955     UpdateHostKeys
956             Specifies whether ssh(1) should accept notifications of
957             additional hostkeys from the server sent after authentication has
958             completed and add them to UserKnownHostsFile.  The argument must
959             be yes, no (the default) or ask.  Enabling this option allows
960             learning alternate hostkeys for a server and supports graceful
961             key rotation by allowing a server to send replacement public keys
962             before old ones are removed.  Additional hostkeys are only
963             accepted if the key used to authenticate the host was already
964             trusted or explicitly accepted by the user.  If UpdateHostKeys is
965             set to ask, then the user is asked to confirm the modifications
966             to the known_hosts file.  Confirmation is currently incompatible
967             with ControlPersist, and will be disabled if it is enabled.
968
969             Presently, only sshd(8) from OpenSSH 6.8 and greater support the
970             "hostkeys@openssh.com" protocol extension used to inform the
971             client of all the server's hostkeys.
972
973     UsePrivilegedPort
974             Specifies whether to use a privileged port for outgoing
975             connections.  The argument must be yes or no (the default).  If
976             set to yes, ssh(1) must be setuid root.  Note that this option
977             must be set to yes for RhostsRSAAuthentication with older
978             servers.
979
980     User    Specifies the user to log in as.  This can be useful when a
981             different user name is used on different machines.  This saves
982             the trouble of having to remember to give the user name on the
983             command line.
984
985     UserKnownHostsFile
986             Specifies one or more files to use for the user host key
987             database, separated by whitespace.  The default is
988             ~/.ssh/known_hosts, ~/.ssh/known_hosts2.
989
990     VerifyHostKeyDNS
991             Specifies whether to verify the remote key using DNS and SSHFP
992             resource records.  If this option is set to yes, the client will
993             implicitly trust keys that match a secure fingerprint from DNS.
994             Insecure fingerprints will be handled as if this option was set
995             to ask.  If this option is set to ask, information on fingerprint
996             match will be displayed, but the user will still need to confirm
997             new host keys according to the StrictHostKeyChecking option.  The
998             default is no.
999
1000             See also VERIFYING HOST KEYS in ssh(1).
1001
1002     VisualHostKey
1003             If this flag is set to yes, an ASCII art representation of the
1004             remote host key fingerprint is printed in addition to the
1005             fingerprint string at login and for unknown host keys.  If this
1006             flag is set to no (the default), no fingerprint strings are
1007             printed at login and only the fingerprint string will be printed
1008             for unknown host keys.
1009
1010     XAuthLocation
1011             Specifies the full pathname of the xauth(1) program.  The default
1012             is /usr/X11R6/bin/xauth.
1013
1014PATTERNS
1015     A pattern consists of zero or more non-whitespace characters, M-bM-^@M-^X*M-bM-^@M-^Y (a
1016     wildcard that matches zero or more characters), or M-bM-^@M-^X?M-bM-^@M-^Y (a wildcard that
1017     matches exactly one character).  For example, to specify a set of
1018     declarations for any host in the ".co.uk" set of domains, the following
1019     pattern could be used:
1020
1021           Host *.co.uk
1022
1023     The following pattern would match any host in the 192.168.0.[0-9] network
1024     range:
1025
1026           Host 192.168.0.?
1027
1028     A pattern-list is a comma-separated list of patterns.  Patterns within
1029     pattern-lists may be negated by preceding them with an exclamation mark
1030     (M-bM-^@M-^X!M-bM-^@M-^Y).  For example, to allow a key to be used from anywhere within an
1031     organization except from the "dialup" pool, the following entry (in
1032     authorized_keys) could be used:
1033
1034           from="!*.dialup.example.com,*.example.com"
1035
1036TOKENS
1037     Arguments to some keywords can make use of tokens, which are expanded at
1038     runtime:
1039
1040           %%    A literal M-bM-^@M-^X%M-bM-^@M-^Y.
1041           %C    Shorthand for %l%h%p%r.
1042           %d    Local user's home directory.
1043           %h    The remote hostname.
1044           %i    The local user ID.
1045           %L    The local hostname.
1046           %l    The local hostname, including the domain name.
1047           %n    The original remote hostname, as given on the command line.
1048           %p    The remote port.
1049           %r    The remote username.
1050           %u    The local username.
1051
1052     Match exec accepts the tokens %%, %h, %L, %l, %n, %p, %r, and %u.
1053
1054     CertificateFile accepts the tokens %%, %d, %h, %l, %r, and %u.
1055
1056     ControlPath accepts the tokens %%, %C, %h, %i, %L, %l, %n, %p, %r, and
1057     %u.
1058
1059     HostName accepts the tokens %% and %h.
1060
1061     IdentityAgent and IdentityFile accept the tokens %%, %d, %h, %l, %r, and
1062     %u.
1063
1064     LocalCommand accepts the tokens %%, %C, %d, %h, %l, %n, %p, %r, and %u.
1065
1066     ProxyCommand accepts the tokens %%, %h, %p, and %r.
1067
1068FILES
1069     ~/.ssh/config
1070             This is the per-user configuration file.  The format of this file
1071             is described above.  This file is used by the SSH client.
1072             Because of the potential for abuse, this file must have strict
1073             permissions: read/write for the user, and not accessible by
1074             others.
1075
1076     /etc/ssh/ssh_config
1077             Systemwide configuration file.  This file provides defaults for
1078             those values that are not specified in the user's configuration
1079             file, and for those users who do not have a configuration file.
1080             This file must be world-readable.
1081
1082SEE ALSO
1083     ssh(1)
1084
1085AUTHORS
1086     OpenSSH is a derivative of the original and free ssh 1.2.12 release by
1087     Tatu Ylonen.  Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo
1088     de Raadt and Dug Song removed many bugs, re-added newer features and
1089     created OpenSSH.  Markus Friedl contributed the support for SSH protocol
1090     versions 1.5 and 2.0.
1091
1092OpenBSD 6.0                    February 27, 2017                   OpenBSD 6.0
1093