1SSHD_CONFIG(5)              BSD File Formats Manual             SSHD_CONFIG(5)
2

NAME

4     sshd_config — OpenSSH SSH daemon configuration file
5

DESCRIPTION

7     sshd(8) reads configuration data from /etc/ssh/sshd_config (or the file
8     specified with -f on the command line).  The file contains keyword-argu‐
9     ment pairs, one per line.  For each keyword, the first obtained value
10     will be used.  Lines starting with ‘#’ and empty lines are interpreted as
11     comments.  Arguments may optionally be enclosed in double quotes (") in
12     order to represent arguments containing spaces.
13
14     The possible keywords and their meanings are as follows (note that key‐
15     words are case-insensitive and arguments are case-sensitive):
16
17     AcceptEnv
18             Specifies what environment variables sent by the client will be
19             copied into the session's environ(7).  See SendEnv and SetEnv in
20             ssh_config(5) for how to configure the client.  The TERM environ‐
21             ment variable is always accepted whenever the client requests a
22             pseudo-terminal as it is required by the protocol.  Variables are
23             specified by name, which may contain the wildcard characters ‘*’
24             and ‘?’.  Multiple environment variables may be separated by
25             whitespace or spread across multiple AcceptEnv directives.  Be
26             warned that some environment variables could be used to bypass
27             restricted user environments.  For this reason, care should be
28             taken in the use of this directive.  The default is not to accept
29             any environment variables.
30
31     AddressFamily
32             Specifies which address family should be used by sshd(8).  Valid
33             arguments are any (the default), inet (use IPv4 only), or inet6
34             (use IPv6 only).
35
36     AllowAgentForwarding
37             Specifies whether ssh-agent(1) forwarding is permitted.  The
38             default is yes.  Note that disabling agent forwarding does not
39             improve security unless users are also denied shell access, as
40             they can always install their own forwarders.
41
42     AllowGroups
43             This keyword can be followed by a list of group name patterns,
44             separated by spaces.  If specified, login is allowed only for
45             users whose primary group or supplementary group list matches one
46             of the patterns.  Only group names are valid; a numerical group
47             ID is not recognized.  By default, login is allowed for all
48             groups.  The allow/deny directives are processed in the following
49             order: DenyUsers, AllowUsers, DenyGroups, and finally
50             AllowGroups.
51
52             See PATTERNS in ssh_config(5) for more information on patterns.
53
54     AllowStreamLocalForwarding
55             Specifies whether StreamLocal (Unix-domain socket) forwarding is
56             permitted.  The available options are yes (the default) or all to
57             allow StreamLocal forwarding, no to prevent all StreamLocal for‐
58             warding, local to allow local (from the perspective of ssh(1))
59             forwarding only or remote to allow remote forwarding only.  Note
60             that disabling StreamLocal forwarding does not improve security
61             unless users are also denied shell access, as they can always
62             install their own forwarders.
63
64     AllowTcpForwarding
65             Specifies whether TCP forwarding is permitted.  The available
66             options are yes (the default) or all to allow TCP forwarding, no
67             to prevent all TCP forwarding, local to allow local (from the
68             perspective of ssh(1)) forwarding only or remote to allow remote
69             forwarding only.  Note that disabling TCP forwarding does not
70             improve security unless users are also denied shell access, as
71             they can always install their own forwarders.
72
73     AllowUsers
74             This keyword can be followed by a list of user name patterns,
75             separated by spaces.  If specified, login is allowed only for
76             user names that match one of the patterns.  Only user names are
77             valid; a numerical user ID is not recognized.  By default, login
78             is allowed for all users.  If the pattern takes the form
79             USER@HOST then USER and HOST are separately checked, restricting
80             logins to particular users from particular hosts.  HOST criteria
81             may additionally contain addresses to match in CIDR
82             address/masklen format.  The allow/deny directives are processed
83             in the following order: DenyUsers, AllowUsers, DenyGroups, and
84             finally AllowGroups.
85
86             See PATTERNS in ssh_config(5) for more information on patterns.
87
88     AuthenticationMethods
89             Specifies the authentication methods that must be successfully
90             completed for a user to be granted access.  This option must be
91             followed by one or more lists of comma-separated authentication
92             method names, or by the single string any to indicate the default
93             behaviour of accepting any single authentication method.  If the
94             default is overridden, then successful authentication requires
95             completion of every method in at least one of these lists.
96
97             For example, "publickey,password publickey,keyboard-interactive"
98             would require the user to complete public key authentication,
99             followed by either password or keyboard interactive authentica‐
100             tion.  Only methods that are next in one or more lists are
101             offered at each stage, so for this example it would not be possi‐
102             ble to attempt password or keyboard-interactive authentication
103             before public key.
104
105             For keyboard interactive authentication it is also possible to
106             restrict authentication to a specific device by appending a colon
107             followed by the device identifier bsdauth or pam.  depending on
108             the server configuration.  For example,
109             "keyboard-interactive:bsdauth" would restrict keyboard interac‐
110             tive authentication to the bsdauth device.
111
112             If the publickey method is listed more than once, sshd(8) veri‐
113             fies that keys that have been used successfully are not reused
114             for subsequent authentications.  For example,
115             "publickey,publickey" requires successful authentication using
116             two different public keys.
117
118             Note that each authentication method listed should also be
119             explicitly enabled in the configuration.
120
121             The available authentication methods are: "gssapi-with-mic",
122             "hostbased", "keyboard-interactive", "none" (used for access to
123             password-less accounts when PermitEmptyPasswords is enabled),
124             "password" and "publickey".
125
126     AuthorizedKeysCommand
127             Specifies a program to be used to look up the user's public keys.
128             The program must be owned by root, not writable by group or oth‐
129             ers and specified by an absolute path.  Arguments to
130             AuthorizedKeysCommand accept the tokens described in the TOKENS
131             section.  If no arguments are specified then the username of the
132             target user is used.
133
134             The program should produce on standard output zero or more lines
135             of authorized_keys output (see AUTHORIZED_KEYS in sshd(8)).  If a
136             key supplied by AuthorizedKeysCommand does not successfully
137             authenticate and authorize the user then public key authentica‐
138             tion continues using the usual AuthorizedKeysFile files.  By
139             default, no AuthorizedKeysCommand is run.
140
141     AuthorizedKeysCommandUser
142             Specifies the user under whose account the AuthorizedKeysCommand
143             is run.  It is recommended to use a dedicated user that has no
144             other role on the host than running authorized keys commands.  If
145             AuthorizedKeysCommand is specified but AuthorizedKeysCommandUser
146             is not, then sshd(8) will refuse to start.
147
148     AuthorizedKeysFile
149             Specifies the file that contains the public keys used for user
150             authentication.  The format is described in the AUTHORIZED_KEYS
151             FILE FORMAT section of sshd(8).  Arguments to AuthorizedKeysFile
152             accept the tokens described in the TOKENS section.  After expan‐
153             sion, AuthorizedKeysFile is taken to be an absolute path or one
154             relative to the user's home directory.  Multiple files may be
155             listed, separated by whitespace.  Alternately this option may be
156             set to none to skip checking for user keys in files.  The default
157             is ".ssh/authorized_keys .ssh/authorized_keys2".
158
159     AuthorizedPrincipalsCommand
160             Specifies a program to be used to generate the list of allowed
161             certificate principals as per AuthorizedPrincipalsFile.  The pro‐
162             gram must be owned by root, not writable by group or others and
163             specified by an absolute path.  Arguments to
164             AuthorizedPrincipalsCommand accept the tokens described in the
165             TOKENS section.  If no arguments are specified then the username
166             of the target user is used.
167
168             The program should produce on standard output zero or more lines
169             of AuthorizedPrincipalsFile output.  If either
170             AuthorizedPrincipalsCommand or AuthorizedPrincipalsFile is speci‐
171             fied, then certificates offered by the client for authentication
172             must contain a principal that is listed.  By default, no
173             AuthorizedPrincipalsCommand is run.
174
175     AuthorizedPrincipalsCommandUser
176             Specifies the user under whose account the
177             AuthorizedPrincipalsCommand is run.  It is recommended to use a
178             dedicated user that has no other role on the host than running
179             authorized principals commands.  If AuthorizedPrincipalsCommand
180             is specified but AuthorizedPrincipalsCommandUser is not, then
181             sshd(8) will refuse to start.
182
183     AuthorizedPrincipalsFile
184             Specifies a file that lists principal names that are accepted for
185             certificate authentication.  When using certificates signed by a
186             key listed in TrustedUserCAKeys, this file lists names, one of
187             which must appear in the certificate for it to be accepted for
188             authentication.  Names are listed one per line preceded by key
189             options (as described in AUTHORIZED_KEYS FILE FORMAT in sshd(8)).
190             Empty lines and comments starting with ‘#’ are ignored.
191
192             Arguments to AuthorizedPrincipalsFile accept the tokens described
193             in the TOKENS section.  After expansion, AuthorizedPrincipalsFile
194             is taken to be an absolute path or one relative to the user's
195             home directory.  The default is none, i.e. not to use a princi‐
196             pals file – in this case, the username of the user must appear in
197             a certificate's principals list for it to be accepted.
198
199             Note that AuthorizedPrincipalsFile is only used when authentica‐
200             tion proceeds using a CA listed in TrustedUserCAKeys and is not
201             consulted for certification authorities trusted via
202             ~/.ssh/authorized_keys, though the principals= key option offers
203             a similar facility (see sshd(8) for details).
204
205     Banner  The contents of the specified file are sent to the remote user
206             before authentication is allowed.  If the argument is none then
207             no banner is displayed.  By default, no banner is displayed.
208
209     CASignatureAlgorithms
210             Specifies which algorithms are allowed for signing of certifi‐
211             cates by certificate authorities (CAs).  The default is:
212
213                   ecdsa-sha2-nistp256.ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
214                   ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
215
216             Certificates signed using other algorithms will not be accepted
217             for public key or host-based authentication.
218
219     ChallengeResponseAuthentication
220             Specifies whether challenge-response authentication is allowed
221             (e.g. via PAM or through authentication styles supported in
222             login.conf(5)) The default is yes.
223
224     ChrootDirectory
225             Specifies the pathname of a directory to chroot(2) to after
226             authentication.  At session startup sshd(8) checks that all com‐
227             ponents of the pathname are root-owned directories which are not
228             writable by any other user or group.  After the chroot, sshd(8)
229             changes the working directory to the user's home directory.
230             Arguments to ChrootDirectory accept the tokens described in the
231             TOKENS section.
232
233             The ChrootDirectory must contain the necessary files and directo‐
234             ries to support the user's session.  For an interactive session
235             this requires at least a shell, typically sh(1), and basic /dev
236             nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4),
237             and tty(4) devices.  For file transfer sessions using SFTP no
238             additional configuration of the environment is necessary if the
239             in-process sftp-server is used, though sessions which use logging
240             may require /dev/log inside the chroot directory on some operat‐
241             ing systems (see sftp-server(8) for details).
242
243             For safety, it is very important that the directory hierarchy be
244             prevented from modification by other processes on the system
245             (especially those outside the jail).  Misconfiguration can lead
246             to unsafe environments which sshd(8) cannot detect.
247
248             The default is none, indicating not to chroot(2).
249
250     Ciphers
251             Specifies the ciphers allowed.  Multiple ciphers must be comma-
252             separated.  If the specified value begins with a ‘+’ character,
253             then the specified ciphers will be appended to the default set
254             instead of replacing them.  If the specified value begins with a
255             ‘-’ character, then the specified ciphers (including wildcards)
256             will be removed from the default set instead of replacing them.
257
258             The supported ciphers are:
259
260                   3des-cbc
261                   aes128-cbc
262                   aes192-cbc
263                   aes256-cbc
264                   aes128-ctr
265                   aes192-ctr
266                   aes256-ctr
267                   aes128-gcm@openssh.com
268                   aes256-gcm@openssh.com
269                   chacha20-poly1305@openssh.com
270
271             The default is handled system-wide by crypto-policies(7).  To see
272             the defaults and how to modifuy this default, see manual page
273             update-crypto-policies(8).
274
275             The list of available ciphers may also be obtained using "ssh -Q
276             cipher".
277
278     ClientAliveCountMax
279             Sets the number of client alive messages which may be sent with‐
280             out sshd(8) receiving any messages back from the client.  If this
281             threshold is reached while client alive messages are being sent,
282             sshd will disconnect the client, terminating the session.  It is
283             important to note that the use of client alive messages is very
284             different from TCPKeepAlive.  The client alive messages are sent
285             through the encrypted channel and therefore will not be spoofa‐
286             ble.  The TCP keepalive option enabled by TCPKeepAlive is spoofa‐
287             ble.  The client alive mechanism is valuable when the client or
288             server depend on knowing when a connection has become inactive.
289
290             The default value is 3.  If ClientAliveInterval is set to 15, and
291             ClientAliveCountMax is left at the default, unresponsive SSH
292             clients will be disconnected after approximately 45 seconds.
293
294     ClientAliveInterval
295             Sets a timeout interval in seconds after which if no data has
296             been received from the client, sshd(8) will send a message
297             through the encrypted channel to request a response from the
298             client.  The default is 0, indicating that these messages will
299             not be sent to the client.
300
301     Compression
302             Specifies whether compression is enabled after the user has
303             authenticated successfully.  The argument must be yes, delayed (a
304             legacy synonym for yes) or no.  The default is yes.
305
306     DenyGroups
307             This keyword can be followed by a list of group name patterns,
308             separated by spaces.  Login is disallowed for users whose primary
309             group or supplementary group list matches one of the patterns.
310             Only group names are valid; a numerical group ID is not recog‐
311             nized.  By default, login is allowed for all groups.  The
312             allow/deny directives are processed in the following order:
313             DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups.
314
315             See PATTERNS in ssh_config(5) for more information on patterns.
316
317     DenyUsers
318             This keyword can be followed by a list of user name patterns,
319             separated by spaces.  Login is disallowed for user names that
320             match one of the patterns.  Only user names are valid; a numeri‐
321             cal user ID is not recognized.  By default, login is allowed for
322             all users.  If the pattern takes the form USER@HOST then USER and
323             HOST are separately checked, restricting logins to particular
324             users from particular hosts.  HOST criteria may additionally con‐
325             tain addresses to match in CIDR address/masklen format.  The
326             allow/deny directives are processed in the following order:
327             DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups.
328
329             See PATTERNS in ssh_config(5) for more information on patterns.
330
331     DisableForwarding
332             Disables all forwarding features, including X11, ssh-agent(1),
333             TCP and StreamLocal.  This option overrides all other forwarding-
334             related options and may simplify restricted configurations.
335
336     ExposeAuthInfo
337             Writes a temporary file containing a list of authentication meth‐
338             ods and public credentials (e.g. keys) used to authenticate the
339             user.  The location of the file is exposed to the user session
340             through the SSH_USER_AUTH environment variable.  The default is
341             no.
342
343     FingerprintHash
344             Specifies the hash algorithm used when logging key fingerprints.
345             Valid options are: md5 and sha256.  The default is sha256.
346
347     ForceCommand
348             Forces the execution of the command specified by ForceCommand,
349             ignoring any command supplied by the client and ~/.ssh/rc if
350             present.  The command is invoked by using the user's login shell
351             with the -c option.  This applies to shell, command, or subsystem
352             execution.  It is most useful inside a Match block.  The command
353             originally supplied by the client is available in the
354             SSH_ORIGINAL_COMMAND environment variable.  Specifying a command
355             of internal-sftp will force the use of an in-process SFTP server
356             that requires no support files when used with ChrootDirectory.
357             The default is none.
358
359     GatewayPorts
360             Specifies whether remote hosts are allowed to connect to ports
361             forwarded for the client.  By default, sshd(8) binds remote port
362             forwardings to the loopback address.  This prevents other remote
363             hosts from connecting to forwarded ports.  GatewayPorts can be
364             used to specify that sshd should allow remote port forwardings to
365             bind to non-loopback addresses, thus allowing other hosts to con‐
366             nect.  The argument may be no to force remote port forwardings to
367             be available to the local host only, yes to force remote port
368             forwardings to bind to the wildcard address, or clientspecified
369             to allow the client to select the address to which the forwarding
370             is bound.  The default is no.
371
372     GSSAPIAuthentication
373             Specifies whether user authentication based on GSSAPI is allowed.
374             The default is no.
375
376     GSSAPICleanupCredentials
377             Specifies whether to automatically destroy the user's credentials
378             cache on logout.  The default is yes.
379
380     GSSAPIEnablek5users
381             Specifies whether to look at .k5users file for GSSAPI authentica‐
382             tion access control. Further details are described in ksu(1).
383             The default is no.
384
385     GSSAPIKeyExchange
386             Specifies whether key exchange based on GSSAPI is allowed. GSSAPI
387             key exchange doesn't rely on ssh keys to verify host identity.
388             The default is no.
389
390     GSSAPIStrictAcceptorCheck
391             Determines whether to be strict about the identity of the GSSAPI
392             acceptor a client authenticates against.  If set to yes then the
393             client must authenticate against the host service on the current
394             hostname.  If set to no then the client may authenticate against
395             any service key stored in the machine's default store.  This
396             facility is provided to assist with operation on multi homed
397             machines.  The default is yes.
398
399     GSSAPIStoreCredentialsOnRekey
400             Controls whether the user's GSSAPI credentials should be updated
401             following a successful connection rekeying. This option can be
402             used to accepted renewed or updated credentials from a compatible
403             client. The default is “no”.
404
405             For this to work GSSAPIKeyExchange needs to be enabled in the
406             server and also used by the client.
407
408     GSSAPIKexAlgorithms
409             The list of key exchange algorithms that are accepted by GSSAPI
410             key exchange. Possible values are
411
412                gss-gex-sha1-,
413                gss-group1-sha1-,
414                gss-group14-sha1-,
415                gss-group14-sha256-,
416                gss-group16-sha512-,
417                gss-nistp256-sha256-,
418                gss-curve25519-sha256-
419
420             The default is handled system-wide by crypto-policies(7).  To see
421             the defaults and how to modifuy this default, see manual page
422             update-crypto-policies(8).  This option only applies to protocol
423             version 2 connections using GSSAPI.
424
425     HostbasedAcceptedKeyTypes
426             Specifies the key types that will be accepted for hostbased
427             authentication as a list of comma-separated patterns.  Alter‐
428             nately if the specified value begins with a ‘+’ character, then
429             the specified key types will be appended to the default set
430             instead of replacing them.  If the specified value begins with a
431             ‘-’ character, then the specified key types (including wildcards)
432             will be removed from the default set instead of replacing them.
433             The default for this option is:
434
435                ecdsa-sha2-nistp256-cert-v01@openssh.com,
436                ecdsa-sha2-nistp384-cert-v01@openssh.com,
437                ecdsa-sha2-nistp521-cert-v01@openssh.com,
438                ssh-ed25519-cert-v01@openssh.com,
439                rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,
440                ssh-rsa-cert-v01@openssh.com,
441                ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
442                ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
443
444             The list of available key types may also be obtained using "ssh
445             -Q key".
446
447     HostbasedAuthentication
448             Specifies whether rhosts or /etc/hosts.equiv authentication
449             together with successful public key client host authentication is
450             allowed (host-based authentication).  The default is no.
451
452     HostbasedUsesNameFromPacketOnly
453             Specifies whether or not the server will attempt to perform a
454             reverse name lookup when matching the name in the ~/.shosts,
455             ~/.rhosts, and /etc/hosts.equiv files during
456             HostbasedAuthentication.  A setting of yes means that sshd(8)
457             uses the name supplied by the client rather than attempting to
458             resolve the name from the TCP connection itself.  The default is
459             no.
460
461     HostCertificate
462             Specifies a file containing a public host certificate.  The cer‐
463             tificate's public key must match a private host key already spec‐
464             ified by HostKey.  The default behaviour of sshd(8) is not to
465             load any certificates.
466
467     HostKey
468             Specifies a file containing a private host key used by SSH.  The
469             defaults are /etc/ssh/ssh_host_ecdsa_key,
470             /etc/ssh/ssh_host_ed25519_key and /etc/ssh/ssh_host_rsa_key.
471
472             Note that sshd(8) will refuse to use a file if it is group/world-
473             accessible and that the HostKeyAlgorithms option restricts which
474             of the keys are actually used by sshd(8).
475
476             It is possible to have multiple host key files.  It is also pos‐
477             sible to specify public host key files instead.  In this case
478             operations on the private key will be delegated to an
479             ssh-agent(1).
480
481     HostKeyAgent
482             Identifies the UNIX-domain socket used to communicate with an
483             agent that has access to the private host keys.  If the string
484             "SSH_AUTH_SOCK" is specified, the location of the socket will be
485             read from the SSH_AUTH_SOCK environment variable.
486
487     HostKeyAlgorithms
488             Specifies the host key algorithms that the server offers.  The
489             default is handled system-wide by crypto-policies(7).  To see the
490             defaults and how to modifuy this default, see manual page
491             update-crypto-policies(8).
492
493             The list of available key types may also be obtained using "ssh
494             -Q key".
495
496     IgnoreRhosts
497             Specifies that .rhosts and .shosts files will not be used in
498             HostbasedAuthentication.
499
500             /etc/hosts.equiv and /etc/ssh/shosts.equiv are still used.  The
501             default is yes.
502
503     IgnoreUserKnownHosts
504             Specifies whether sshd(8) should ignore the user's
505             ~/.ssh/known_hosts during HostbasedAuthentication and use only
506             the system-wide known hosts file /etc/ssh/known_hosts.  The
507             default is no.
508
509     IPQoS   Specifies the IPv4 type-of-service or DSCP class for the connec‐
510             tion.  Accepted values are af11, af12, af13, af21, af22, af23,
511             af31, af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5,
512             cs6, cs7, ef, lowdelay, throughput, reliability, a numeric value,
513             or none to use the operating system default.  This option may
514             take one or two arguments, separated by whitespace.  If one argu‐
515             ment is specified, it is used as the packet class uncondition‐
516             ally.  If two values are specified, the first is automatically
517             selected for interactive sessions and the second for non-interac‐
518             tive sessions.  The default is af21 (Low-Latency Data) for inter‐
519             active sessions and cs1 (Lower Effort) for non-interactive ses‐
520             sions.
521
522     KbdInteractiveAuthentication
523             Specifies whether to allow keyboard-interactive authentication.
524             The argument to this keyword must be yes or no.  The default is
525             to use whatever value ChallengeResponseAuthentication is set to
526             (by default yes).
527
528     KerberosAuthentication
529             Specifies whether the password provided by the user for
530             PasswordAuthentication will be validated through the Kerberos
531             KDC.  To use this option, the server needs a Kerberos servtab
532             which allows the verification of the KDC's identity.  The default
533             is no.
534
535     KerberosGetAFSToken
536             If AFS is active and the user has a Kerberos 5 TGT, attempt to
537             acquire an AFS token before accessing the user's home directory.
538             The default is no.
539
540     KerberosOrLocalPasswd
541             If password authentication through Kerberos fails then the pass‐
542             word will be validated via any additional local mechanism such as
543             /etc/passwd.  The default is yes.
544
545     KerberosTicketCleanup
546             Specifies whether to automatically destroy the user's ticket
547             cache file on logout.  The default is yes.
548
549     KerberosUniqueCCache
550             Specifies whether to store the acquired tickets in the per-ses‐
551             sion credential cache under /tmp/ or whether to use per-user cre‐
552             dential cache as configured in /etc/krb5.conf.  The default value
553             no can lead to overwriting previous tickets by subseqent connec‐
554             tions to the same user account.
555
556     KerberosUseKuserok
557             Specifies whether to look at .k5login file for user's aliases.
558             The default is yes.
559
560     KexAlgorithms
561             Specifies the available KEX (Key Exchange) algorithms.  Multiple
562             algorithms must be comma-separated.  Alternately if the specified
563             value begins with a ‘+’ character, then the specified methods
564             will be appended to the default set instead of replacing them.
565             If the specified value begins with a ‘-’ character, then the
566             specified methods (including wildcards) will be removed from the
567             default set instead of replacing them.  The supported algorithms
568             are:
569
570                   curve25519-sha256
571                   curve25519-sha256@libssh.org
572                   diffie-hellman-group1-sha1
573                   diffie-hellman-group14-sha1
574                   diffie-hellman-group14-sha256
575                   diffie-hellman-group16-sha512
576                   diffie-hellman-group18-sha512
577                   diffie-hellman-group-exchange-sha1
578                   diffie-hellman-group-exchange-sha256
579                   ecdh-sha2-nistp256
580                   ecdh-sha2-nistp384
581                   ecdh-sha2-nistp521
582
583             The default is handled system-wide by crypto-policies(7).  To see
584             the defaults and how to modifuy this default, see manual page
585             update-crypto-policies(8).
586
587             The list of available key exchange algorithms may also be
588             obtained using "ssh -Q kex".
589
590     ListenAddress
591             Specifies the local addresses sshd(8) should listen on.  The fol‐
592             lowing forms may be used:
593
594                   ListenAddress hostname|address [rdomain domain]
595                   ListenAddress hostname:port [rdomain domain]
596                   ListenAddress IPv4_address:port [rdomain domain]
597                   ListenAddress [hostname|address]:port [rdomain domain]
598
599             The optional rdomain qualifier requests sshd(8) listen in an
600             explicit routing domain.  If port is not specified, sshd will
601             listen on the address and all Port options specified.  The
602             default is to listen on all local addresses on the current
603             default routing domain.  Multiple ListenAddress options are per‐
604             mitted.  For more information on routing domains, see rdomain(4).
605
606     LoginGraceTime
607             The server disconnects after this time if the user has not suc‐
608             cessfully logged in.  If the value is 0, there is no time limit.
609             The default is 120 seconds.
610
611     LogLevel
612             Gives the verbosity level that is used when logging messages from
613             sshd(8).  The possible values are: QUIET, FATAL, ERROR, INFO,
614             VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.  The default is INFO.
615             DEBUG and DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify
616             higher levels of debugging output.  Logging with a DEBUG level
617             violates the privacy of users and is not recommended.
618
619     MACs    Specifies the available MAC (message authentication code) algo‐
620             rithms.  The MAC algorithm is used for data integrity protection.
621             Multiple algorithms must be comma-separated.  If the specified
622             value begins with a ‘+’ character, then the specified algorithms
623             will be appended to the default set instead of replacing them.
624             If the specified value begins with a ‘-’ character, then the
625             specified algorithms (including wildcards) will be removed from
626             the default set instead of replacing them.
627
628             The algorithms that contain "-etm" calculate the MAC after
629             encryption (encrypt-then-mac).  These are considered safer and
630             their use recommended.  The supported MACs are:
631
632                   hmac-md5
633                   hmac-md5-96
634                   hmac-sha1
635                   hmac-sha1-96
636                   hmac-sha2-256
637                   hmac-sha2-512
638                   umac-64@openssh.com
639                   umac-128@openssh.com
640                   hmac-md5-etm@openssh.com
641                   hmac-md5-96-etm@openssh.com
642                   hmac-sha1-etm@openssh.com
643                   hmac-sha1-96-etm@openssh.com
644                   hmac-sha2-256-etm@openssh.com
645                   hmac-sha2-512-etm@openssh.com
646                   umac-64-etm@openssh.com
647                   umac-128-etm@openssh.com
648
649             The default is handled system-wide by crypto-policies(7).  To see
650             the defaults and how to modifuy this default, see manual page
651             update-crypto-policies(8).
652
653             The list of available MAC algorithms may also be obtained using
654             "ssh -Q mac".
655
656     Match   Introduces a conditional block.  If all of the criteria on the
657             Match line are satisfied, the keywords on the following lines
658             override those set in the global section of the config file,
659             until either another Match line or the end of the file.  If a
660             keyword appears in multiple Match blocks that are satisfied, only
661             the first instance of the keyword is applied.
662
663             The arguments to Match are one or more criteria-pattern pairs or
664             the single token All which matches all criteria.  The available
665             criteria are User, Group, Host, LocalAddress, LocalPort, RDomain,
666             and Address (with RDomain representing the rdomain(4) on which
667             the connection was received).
668
669             The match patterns may consist of single entries or comma-sepa‐
670             rated lists and may use the wildcard and negation operators
671             described in the PATTERNS section of ssh_config(5).
672
673             The patterns in an Address criteria may additionally contain
674             addresses to match in CIDR address/masklen format, such as
675             192.0.2.0/24 or 2001:db8::/32.  Note that the mask length pro‐
676             vided must be consistent with the address - it is an error to
677             specify a mask length that is too long for the address or one
678             with bits set in this host portion of the address.  For example,
679             192.0.2.0/33 and 192.0.2.0/8, respectively.
680
681             Only a subset of keywords may be used on the lines following a
682             Match keyword.  Available keywords are AcceptEnv,
683             AllowAgentForwarding, AllowGroups, AllowStreamLocalForwarding,
684             AllowTcpForwarding, AllowUsers, AuthenticationMethods,
685             AuthorizedKeysCommand, AuthorizedKeysCommandUser,
686             AuthorizedKeysFile, AuthorizedPrincipalsCommand,
687             AuthorizedPrincipalsCommandUser, AuthorizedPrincipalsFile,
688             Banner, ChrootDirectory, ClientAliveCountMax,
689             ClientAliveInterval, DenyGroups, DenyUsers, ForceCommand,
690             GatewayPorts, GSSAPIAuthentication, HostbasedAcceptedKeyTypes,
691             HostbasedAuthentication, HostbasedUsesNameFromPacketOnly, IPQoS,
692             KbdInteractiveAuthentication, KerberosAuthentication,
693             KerberosUseKuserok, LogLevel, MaxAuthTries, MaxSessions,
694             PasswordAuthentication, PermitEmptyPasswords, PermitListen,
695             PermitOpen, PermitRootLogin, PermitTTY, PermitTunnel,
696             PermitUserRC, PubkeyAcceptedKeyTypes, PubkeyAuthentication,
697             RekeyLimit, RevokedKeys, RDomain, SetEnv, StreamLocalBindMask,
698             StreamLocalBindUnlink, TrustedUserCAKeys, X11DisplayOffset,
699             X11MaxDisplays, X11Forwarding and X11UseLocalHost.
700
701     MaxAuthTries
702             Specifies the maximum number of authentication attempts permitted
703             per connection.  Once the number of failures reaches half this
704             value, additional failures are logged.  The default is 6.
705
706     MaxSessions
707             Specifies the maximum number of open shell, login or subsystem
708             (e.g. sftp) sessions permitted per network connection.  Multiple
709             sessions may be established by clients that support connection
710             multiplexing.  Setting MaxSessions to 1 will effectively disable
711             session multiplexing, whereas setting it to 0 will prevent all
712             shell, login and subsystem sessions while still permitting for‐
713             warding.  The default is 10.
714
715     MaxStartups
716             Specifies the maximum number of concurrent unauthenticated con‐
717             nections to the SSH daemon.  Additional connections will be
718             dropped until authentication succeeds or the LoginGraceTime
719             expires for a connection.  The default is 10:30:100.
720
721             Alternatively, random early drop can be enabled by specifying the
722             three colon separated values start:rate:full (e.g. "10:30:60").
723             sshd(8) will refuse connection attempts with a probability of
724             rate/100 (30%) if there are currently start (10) unauthenticated
725             connections.  The probability increases linearly and all connec‐
726             tion attempts are refused if the number of unauthenticated con‐
727             nections reaches full (60).
728
729     PasswordAuthentication
730             Specifies whether password authentication is allowed.  The
731             default is yes.
732
733     PermitEmptyPasswords
734             When password authentication is allowed, it specifies whether the
735             server allows login to accounts with empty password strings.  The
736             default is no.
737
738     PermitListen
739             Specifies the addresses/ports on which a remote TCP port forward‐
740             ing may listen.  The listen specification must be one of the fol‐
741             lowing forms:
742
743                   PermitListen port
744                   PermitListen host:port
745
746             Multiple permissions may be specified by separating them with
747             whitespace.  An argument of any can be used to remove all
748             restrictions and permit any listen requests.  An argument of none
749             can be used to prohibit all listen requests.  The host name may
750             contain wildcards as described in the PATTERNS section in
751             ssh_config(5).  The wildcard ‘*’ can also be used in place of a
752             port number to allow all ports.  By default all port forwarding
753             listen requests are permitted.  Note that the GatewayPorts option
754             may further restrict which addresses may be listened on.  Note
755             also that ssh(1) will request a listen host of “localhost” if no
756             listen host was specifically requested, and this name is treated
757             differently to explicit localhost addresses of “127.0.0.1” and
758             “::1”.
759
760     PermitOpen
761             Specifies the destinations to which TCP port forwarding is per‐
762             mitted.  The forwarding specification must be one of the follow‐
763             ing forms:
764
765                   PermitOpen host:port
766                   PermitOpen IPv4_addr:port
767                   PermitOpen [IPv6_addr]:port
768
769             Multiple forwards may be specified by separating them with white‐
770             space.  An argument of any can be used to remove all restrictions
771             and permit any forwarding requests.  An argument of none can be
772             used to prohibit all forwarding requests.  The wildcard ‘*’ can
773             be used for host or port to allow all hosts or ports, respec‐
774             tively.  By default all port forwarding requests are permitted.
775
776     PermitRootLogin
777             Specifies whether root can log in using ssh(1).  The argument
778             must be yes, prohibit-password, forced-commands-only, or no.  The
779             default is prohibit-password.
780
781             If this option is set to prohibit-password (or its deprecated
782             alias, without-password), password and keyboard-interactive
783             authentication are disabled for root.
784
785             If this option is set to forced-commands-only, root login with
786             public key authentication will be allowed, but only if the
787             command option has been specified (which may be useful for taking
788             remote backups even if root login is normally not allowed).  All
789             other authentication methods are disabled for root.
790
791             If this option is set to no, root is not allowed to log in.
792
793     PermitTTY
794             Specifies whether pty(4) allocation is permitted.  The default is
795             yes.
796
797     PermitTunnel
798             Specifies whether tun(4) device forwarding is allowed.  The argu‐
799             ment must be yes, point-to-point (layer 3), ethernet (layer 2),
800             or no.  Specifying yes permits both point-to-point and ethernet.
801             The default is no.
802
803             Independent of this setting, the permissions of the selected
804             tun(4) device must allow access to the user.
805
806     PermitUserEnvironment
807             Specifies whether ~/.ssh/environment and environment= options in
808             ~/.ssh/authorized_keys are processed by sshd(8).  Valid options
809             are yes, no or a pattern-list specifying which environment vari‐
810             able names to accept (for example "LANG,LC_*").  The default is
811             no.  Enabling environment processing may enable users to bypass
812             access restrictions in some configurations using mechanisms such
813             as LD_PRELOAD.
814
815     PermitUserRC
816             Specifies whether any ~/.ssh/rc file is executed.  The default is
817             yes.
818
819     PidFile
820             Specifies the file that contains the process ID of the SSH dae‐
821             mon, or none to not write one.  The default is /var/run/sshd.pid.
822
823     Port    Specifies the port number that sshd(8) listens on.  The default
824             is 22.  Multiple options of this type are permitted.  See also
825             ListenAddress.
826
827     PrintLastLog
828             Specifies whether sshd(8) should print the date and time of the
829             last user login when a user logs in interactively.  The default
830             is yes.
831
832     PrintMotd
833             Specifies whether sshd(8) should print /etc/motd when a user logs
834             in interactively.  (On some systems it is also printed by the
835             shell, /etc/profile, or equivalent.)  The default is yes.
836
837     PubkeyAcceptedKeyTypes
838             Specifies the key types that will be accepted for public key
839             authentication as a list of comma-separated patterns.  Alter‐
840             nately if the specified value begins with a ‘+’ character, then
841             the specified key types will be appended to the default set
842             instead of replacing them.  If the specified value begins with a
843             ‘-’ character, then the specified key types (including wildcards)
844             will be removed from the default set instead of replacing them.
845             The default is handled system-wide by crypto-policies(7).  To see
846             the defaults and how to modifuy this default, see manual page
847             update-crypto-policies(8).
848
849             The list of available key types may also be obtained using "ssh
850             -Q key".
851
852     PubkeyAuthentication
853             Specifies whether public key authentication is allowed.  The
854             default is yes.
855
856     RekeyLimit
857             Specifies the maximum amount of data that may be transmitted
858             before the session key is renegotiated, optionally followed a
859             maximum amount of time that may pass before the session key is
860             renegotiated.  The first argument is specified in bytes and may
861             have a suffix of ‘K’, ‘M’, or ‘G’ to indicate Kilobytes,
862             Megabytes, or Gigabytes, respectively.  The default is between
863             ‘1G’ and ‘4G’, depending on the cipher.  The optional second
864             value is specified in seconds and may use any of the units docu‐
865             mented in the TIME FORMATS section.  The default value for
866             RekeyLimit is default none, which means that rekeying is per‐
867             formed after the cipher's default amount of data has been sent or
868             received and no time based rekeying is done.
869
870     RevokedKeys
871             Specifies revoked public keys file, or none to not use one.  Keys
872             listed in this file will be refused for public key authentica‐
873             tion.  Note that if this file is not readable, then public key
874             authentication will be refused for all users.  Keys may be speci‐
875             fied as a text file, listing one public key per line, or as an
876             OpenSSH Key Revocation List (KRL) as generated by ssh-keygen(1).
877             For more information on KRLs, see the KEY REVOCATION LISTS sec‐
878             tion in ssh-keygen(1).
879
880     RDomain
881             Specifies an explicit routing domain that is applied after
882             authentication has completed.  The user session, as well and any
883             forwarded or listening IP sockets, will be bound to this
884             rdomain(4).  If the routing domain is set to %D, then the domain
885             in which the incoming connection was received will be applied.
886
887     SetEnv  Specifies one or more environment variables to set in child ses‐
888             sions started by sshd(8) as “NAME=VALUE”.  The environment value
889             may be quoted (e.g. if it contains whitespace characters).  Envi‐
890             ronment variables set by SetEnv override the default environment
891             and any variables specified by the user via AcceptEnv or
892             PermitUserEnvironment.
893
894     StreamLocalBindMask
895             Sets the octal file creation mode mask (umask) used when creating
896             a Unix-domain socket file for local or remote port forwarding.
897             This option is only used for port forwarding to a Unix-domain
898             socket file.
899
900             The default value is 0177, which creates a Unix-domain socket
901             file that is readable and writable only by the owner.  Note that
902             not all operating systems honor the file mode on Unix-domain
903             socket files.
904
905     StreamLocalBindUnlink
906             Specifies whether to remove an existing Unix-domain socket file
907             for local or remote port forwarding before creating a new one.
908             If the socket file already exists and StreamLocalBindUnlink is
909             not enabled, sshd will be unable to forward the port to the Unix-
910             domain socket file.  This option is only used for port forwarding
911             to a Unix-domain socket file.
912
913             The argument must be yes or no.  The default is no.
914
915     StrictModes
916             Specifies whether sshd(8) should check file modes and ownership
917             of the user's files and home directory before accepting login.
918             This is normally desirable because novices sometimes accidentally
919             leave their directory or files world-writable.  The default is
920             yes.  Note that this does not apply to ChrootDirectory, whose
921             permissions and ownership are checked unconditionally.
922
923     Subsystem
924             Configures an external subsystem (e.g. file transfer daemon).
925             Arguments should be a subsystem name and a command (with optional
926             arguments) to execute upon subsystem request.
927
928             The command sftp-server implements the SFTP file transfer subsys‐
929             tem.
930
931             Alternately the name internal-sftp implements an in-process SFTP
932             server.  This may simplify configurations using ChrootDirectory
933             to force a different filesystem root on clients.
934
935             By default no subsystems are defined.
936
937     SyslogFacility
938             Gives the facility code that is used when logging messages from
939             sshd(8).  The possible values are: DAEMON, USER, AUTH, AUTHPRIV,
940             LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
941             The default is AUTH.
942
943     TCPKeepAlive
944             Specifies whether the system should send TCP keepalive messages
945             to the other side.  If they are sent, death of the connection or
946             crash of one of the machines will be properly noticed.  However,
947             this means that connections will die if the route is down tempo‐
948             rarily, and some people find it annoying.  On the other hand, if
949             TCP keepalives are not sent, sessions may hang indefinitely on
950             the server, leaving "ghost" users and consuming server resources.
951
952             The default is yes (to send TCP keepalive messages), and the
953             server will notice if the network goes down or the client host
954             crashes.  This avoids infinitely hanging sessions.
955
956             To disable TCP keepalive messages, the value should be set to no.
957
958     TrustedUserCAKeys
959             Specifies a file containing public keys of certificate authori‐
960             ties that are trusted to sign user certificates for authentica‐
961             tion, or none to not use one.  Keys are listed one per line;
962             empty lines and comments starting with ‘#’ are allowed.  If a
963             certificate is presented for authentication and has its signing
964             CA key listed in this file, then it may be used for authentica‐
965             tion for any user listed in the certificate's principals list.
966             Note that certificates that lack a list of principals will not be
967             permitted for authentication using TrustedUserCAKeys.  For more
968             details on certificates, see the CERTIFICATES section in
969             ssh-keygen(1).
970
971     UseDNS  Specifies whether sshd(8) should look up the remote host name,
972             and to check that the resolved host name for the remote IP
973             address maps back to the very same IP address.
974
975             If this option is set to no (the default) then only addresses and
976             not host names may be used in ~/.ssh/authorized_keys from and
977             sshd_config Match Host directives.
978
979     UsePAM  Enables the Pluggable Authentication Module interface.  If set to
980             yes this will enable PAM authentication using
981             ChallengeResponseAuthentication and PasswordAuthentication in
982             addition to PAM account and session module processing for all
983             authentication types.
984
985             Because PAM challenge-response authentication usually serves an
986             equivalent role to password authentication, you should disable
987             either PasswordAuthentication or ChallengeResponseAuthentication.
988
989             If UsePAM is enabled, you will not be able to run sshd(8) as a
990             non-root user.  The default is no.
991
992     VersionAddendum
993             Optionally specifies additional text to append to the SSH proto‐
994             col banner sent by the server upon connection.  The default is
995             none.
996
997     X11DisplayOffset
998             Specifies the first display number available for sshd(8)'s X11
999             forwarding.  This prevents sshd from interfering with real X11
1000             servers.  The default is 10.
1001
1002     X11MaxDisplays
1003             Specifies the maximum number of displays available for sshd(8)'s
1004             X11 forwarding.  This prevents sshd from exhausting local ports.
1005             The default is 1000.
1006
1007     X11Forwarding
1008             Specifies whether X11 forwarding is permitted.  The argument must
1009             be yes or no.  The default is no.
1010
1011             When X11 forwarding is enabled, there may be additional exposure
1012             to the server and to client displays if the sshd(8) proxy display
1013             is configured to listen on the wildcard address (see
1014             X11UseLocalhost), though this is not the default.  Additionally,
1015             the authentication spoofing and authentication data verification
1016             and substitution occur on the client side.  The security risk of
1017             using X11 forwarding is that the client's X11 display server may
1018             be exposed to attack when the SSH client requests forwarding (see
1019             the warnings for ForwardX11 in ssh_config(5)).  A system adminis‐
1020             trator may have a stance in which they want to protect clients
1021             that may expose themselves to attack by unwittingly requesting
1022             X11 forwarding, which can warrant a no setting.
1023
1024             Note that disabling X11 forwarding does not prevent users from
1025             forwarding X11 traffic, as users can always install their own
1026             forwarders.
1027
1028     X11UseLocalhost
1029             Specifies whether sshd(8) should bind the X11 forwarding server
1030             to the loopback address or to the wildcard address.  By default,
1031             sshd binds the forwarding server to the loopback address and sets
1032             the hostname part of the DISPLAY environment variable to
1033             localhost.  This prevents remote hosts from connecting to the
1034             proxy display.  However, some older X11 clients may not function
1035             with this configuration.  X11UseLocalhost may be set to no to
1036             specify that the forwarding server should be bound to the wild‐
1037             card address.  The argument must be yes or no.  The default is
1038             yes.
1039
1040     XAuthLocation
1041             Specifies the full pathname of the xauth(1) program, or none to
1042             not use one.  The default is /usr/bin/xauth.
1043

TIME FORMATS

1045     sshd(8) command-line arguments and configuration file options that spec‐
1046     ify time may be expressed using a sequence of the form: time[qualifier],
1047     where time is a positive integer value and qualifier is one of the fol‐
1048     lowing:
1049
1050none⟩  seconds
1051           s | S   seconds
1052           m | M   minutes
1053           h | H   hours
1054           d | D   days
1055           w | W   weeks
1056
1057     Each member of the sequence is added together to calculate the total time
1058     value.
1059
1060     Time format examples:
1061
1062           600     600 seconds (10 minutes)
1063           10m     10 minutes
1064           1h30m   1 hour 30 minutes (90 minutes)
1065

TOKENS

1067     Arguments to some keywords can make use of tokens, which are expanded at
1068     runtime:
1069
1070           %%    A literal ‘%’.
1071           %D    The routing domain in which the incoming connection was
1072                 received.
1073           %F    The fingerprint of the CA key.
1074           %f    The fingerprint of the key or certificate.
1075           %h    The home directory of the user.
1076           %i    The key ID in the certificate.
1077           %K    The base64-encoded CA key.
1078           %k    The base64-encoded key or certificate for authentication.
1079           %s    The serial number of the certificate.
1080           %T    The type of the CA key.
1081           %t    The key or certificate type.
1082           %U    The numeric user ID of the target user.
1083           %u    The username.
1084
1085     AuthorizedKeysCommand accepts the tokens %%, %f, %h, %k, %t, %U, and %u.
1086
1087     AuthorizedKeysFile accepts the tokens %%, %h, %U, and %u.
1088
1089     AuthorizedPrincipalsCommand accepts the tokens %%, %F, %f, %h, %i, %K,
1090     %k, %s, %T, %t, %U, and %u.
1091
1092     AuthorizedPrincipalsFile accepts the tokens %%, %h, %U, and %u.
1093
1094     ChrootDirectory accepts the tokens %%, %h, %U, and %u.
1095
1096     RoutingDomain accepts the token %D.
1097

FILES

1099     /etc/ssh/sshd_config
1100             Contains configuration data for sshd(8).  This file should be
1101             writable by root only, but it is recommended (though not neces‐
1102             sary) that it be world-readable.
1103

SEE ALSO

1105     sftp-server(8), sshd(8)
1106

AUTHORS

1108     OpenSSH is a derivative of the original and free ssh 1.2.12 release by
1109     Tatu Ylonen.  Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo
1110     de Raadt and Dug Song removed many bugs, re-added newer features and cre‐
1111     ated OpenSSH.  Markus Friedl contributed the support for SSH protocol
1112     versions 1.5 and 2.0.  Niels Provos and Markus Friedl contributed support
1113     for privilege separation.
1114
1115BSD                              June 22, 2019                             BSD
Impressum