Merge branch 'vendor/GCC47'
[dragonfly.git] / crypto / openssh / sshd_config.5
1 .\"
2 .\" Author: Tatu Ylonen <ylo@cs.hut.fi>
3 .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 .\"                    All rights reserved
5 .\"
6 .\" As far as I am concerned, the code I have written for this software
7 .\" can be used freely for any purpose.  Any derived versions of this
8 .\" software must be clearly marked as such, and if the derived work is
9 .\" incompatible with the protocol description in the RFC file, it must be
10 .\" called by a name other than "ssh" or "Secure Shell".
11 .\"
12 .\" Copyright (c) 1999,2000 Markus Friedl.  All rights reserved.
13 .\" Copyright (c) 1999 Aaron Campbell.  All rights reserved.
14 .\" Copyright (c) 1999 Theo de Raadt.  All rights reserved.
15 .\"
16 .\" Redistribution and use in source and binary forms, with or without
17 .\" modification, are permitted provided that the following conditions
18 .\" are met:
19 .\" 1. Redistributions of source code must retain the above copyright
20 .\"    notice, this list of conditions and the following disclaimer.
21 .\" 2. Redistributions in binary form must reproduce the above copyright
22 .\"    notice, this list of conditions and the following disclaimer in the
23 .\"    documentation and/or other materials provided with the distribution.
24 .\"
25 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
26 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
27 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
29 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 .\"
36 .\" $OpenBSD: sshd_config.5,v 1.135 2011/08/02 01:22:11 djm Exp $
37 .Dd $Mdocdate: August 2 2011 $
38 .Dt SSHD_CONFIG 5
39 .Os
40 .Sh NAME
41 .Nm sshd_config
42 .Nd OpenSSH SSH daemon configuration file
43 .Sh SYNOPSIS
44 .Nm /etc/ssh/sshd_config
45 .Sh DESCRIPTION
46 .Xr sshd 8
47 reads configuration data from
48 .Pa /etc/ssh/sshd_config
49 (or the file specified with
50 .Fl f
51 on the command line).
52 The file contains keyword-argument pairs, one per line.
53 Lines starting with
54 .Ql #
55 and empty lines are interpreted as comments.
56 Arguments may optionally be enclosed in double quotes
57 .Pq \&"
58 in order to represent arguments containing spaces.
59 .Pp
60 The possible
61 keywords and their meanings are as follows (note that
62 keywords are case-insensitive and arguments are case-sensitive):
63 .Bl -tag -width Ds
64 .It Cm AcceptEnv
65 Specifies what environment variables sent by the client will be copied into
66 the session's
67 .Xr environ 7 .
68 See
69 .Cm SendEnv
70 in
71 .Xr ssh_config 5
72 for how to configure the client.
73 Note that environment passing is only supported for protocol 2.
74 Variables are specified by name, which may contain the wildcard characters
75 .Ql *
76 and
77 .Ql \&? .
78 Multiple environment variables may be separated by whitespace or spread
79 across multiple
80 .Cm AcceptEnv
81 directives.
82 Be warned that some environment variables could be used to bypass restricted
83 user environments.
84 For this reason, care should be taken in the use of this directive.
85 The default is not to accept any environment variables.
86 .It Cm AddressFamily
87 Specifies which address family should be used by
88 .Xr sshd 8 .
89 Valid arguments are
90 .Dq any ,
91 .Dq inet
92 (use IPv4 only), or
93 .Dq inet6
94 (use IPv6 only).
95 The default is
96 .Dq any .
97 .It Cm AllowAgentForwarding
98 Specifies whether
99 .Xr ssh-agent 1
100 forwarding is permitted.
101 The default is
102 .Dq yes .
103 Note that disabling agent forwarding does not improve security
104 unless users are also denied shell access, as they can always install
105 their own forwarders.
106 .It Cm AllowGroups
107 This keyword can be followed by a list of group name patterns, separated
108 by spaces.
109 If specified, login is allowed only for users whose primary
110 group or supplementary group list matches one of the patterns.
111 Only group names are valid; a numerical group ID is not recognized.
112 By default, login is allowed for all groups.
113 The allow/deny directives are processed in the following order:
114 .Cm DenyUsers ,
115 .Cm AllowUsers ,
116 .Cm DenyGroups ,
117 and finally
118 .Cm AllowGroups .
119 .Pp
120 See
121 .Sx PATTERNS
122 in
123 .Xr ssh_config 5
124 for more information on patterns.
125 .It Cm AllowTcpForwarding
126 Specifies whether TCP forwarding is permitted.
127 The default is
128 .Dq yes .
129 Note that disabling TCP forwarding does not improve security unless
130 users are also denied shell access, as they can always install their
131 own forwarders.
132 .It Cm AllowUsers
133 This keyword can be followed by a list of user name patterns, separated
134 by spaces.
135 If specified, login is allowed only for user names that
136 match one of the patterns.
137 Only user names are valid; a numerical user ID is not recognized.
138 By default, login is allowed for all users.
139 If the pattern takes the form USER@HOST then USER and HOST
140 are separately checked, restricting logins to particular
141 users from particular hosts.
142 The allow/deny directives are processed in the following order:
143 .Cm DenyUsers ,
144 .Cm AllowUsers ,
145 .Cm DenyGroups ,
146 and finally
147 .Cm AllowGroups .
148 .Pp
149 See
150 .Sx PATTERNS
151 in
152 .Xr ssh_config 5
153 for more information on patterns.
154 .It Cm AuthorizedKeysFile
155 Specifies the file that contains the public keys that can be used
156 for user authentication.
157 The format is described in the
158 .Sx AUTHORIZED_KEYS FILE FORMAT
159 section of
160 .Xr sshd 8 .
161 .Cm AuthorizedKeysFile
162 may contain tokens of the form %T which are substituted during connection
163 setup.
164 The following tokens are defined: %% is replaced by a literal '%',
165 %h is replaced by the home directory of the user being authenticated, and
166 %u is replaced by the username of that user.
167 After expansion,
168 .Cm AuthorizedKeysFile
169 is taken to be an absolute path or one relative to the user's home
170 directory.
171 Multiple files may be listed, separated by whitespace.
172 The default is
173 .Dq .ssh/authorized_keys .ssh/authorized_keys2 .
174 .It Cm AuthorizedPrincipalsFile
175 Specifies a file that lists principal names that are accepted for
176 certificate authentication.
177 When using certificates signed by a key listed in
178 .Cm TrustedUserCAKeys ,
179 this file lists names, one of which must appear in the certificate for it
180 to be accepted for authentication.
181 Names are listed one per line preceded by key options (as described
182 in
183 .Sx AUTHORIZED_KEYS FILE FORMAT
184 in
185 .Xr sshd 8 ) .
186 Empty lines and comments starting with
187 .Ql #
188 are ignored.
189 .Pp
190 .Cm AuthorizedPrincipalsFile
191 may contain tokens of the form %T which are substituted during connection
192 setup.
193 The following tokens are defined: %% is replaced by a literal '%',
194 %h is replaced by the home directory of the user being authenticated, and
195 %u is replaced by the username of that user.
196 After expansion,
197 .Cm AuthorizedPrincipalsFile
198 is taken to be an absolute path or one relative to the user's home
199 directory.
200 .Pp
201 The default is not to use a principals file \(en in this case, the username
202 of the user must appear in a certificate's principals list for it to be
203 accepted.
204 Note that
205 .Cm AuthorizedPrincipalsFile
206 is only used when authentication proceeds using a CA listed in
207 .Cm TrustedUserCAKeys
208 and is not consulted for certification authorities trusted via
209 .Pa ~/.ssh/authorized_keys ,
210 though the
211 .Cm principals=
212 key option offers a similar facility (see
213 .Xr sshd 8
214 for details).
215 .It Cm Banner
216 The contents of the specified file are sent to the remote user before
217 authentication is allowed.
218 If the argument is
219 .Dq none
220 then no banner is displayed.
221 This option is only available for protocol version 2.
222 By default, no banner is displayed.
223 .It Cm ChallengeResponseAuthentication
224 Specifies whether challenge-response authentication is allowed.
225 Specifically, in
226 .Dx ,
227 this controls the use of PAM (see
228 .Xr pam 3 )
229 for authentication.
230 Note that this affects the effectiveness of the
231 .Cm PasswordAuthentication
232 and
233 .Cm PermitRootLogin
234 variables.
235 The default is
236 .Dq yes .
237 .It Cm ChrootDirectory
238 Specifies the pathname of a directory to
239 .Xr chroot 2
240 to after authentication.
241 All components of the pathname must be root-owned directories that are
242 not writable by any other user or group.
243 After the chroot,
244 .Xr sshd 8
245 changes the working directory to the user's home directory.
246 .Pp
247 The pathname may contain the following tokens that are expanded at runtime once
248 the connecting user has been authenticated: %% is replaced by a literal '%',
249 %h is replaced by the home directory of the user being authenticated, and
250 %u is replaced by the username of that user.
251 .Pp
252 The
253 .Cm ChrootDirectory
254 must contain the necessary files and directories to support the
255 user's session.
256 For an interactive session this requires at least a shell, typically
257 .Xr sh 1 ,
258 and basic
259 .Pa /dev
260 nodes such as
261 .Xr null 4 ,
262 .Xr zero 4 ,
263 .Xr stdin 4 ,
264 .Xr stdout 4 ,
265 .Xr stderr 4 ,
266 .Xr arandom 4
267 and
268 .Xr tty 4
269 devices.
270 For file transfer sessions using
271 .Dq sftp ,
272 no additional configuration of the environment is necessary if the
273 in-process sftp server is used,
274 though sessions which use logging do require
275 .Pa /dev/log
276 inside the chroot directory (see
277 .Xr sftp-server 8
278 for details).
279 .Pp
280 The default is not to
281 .Xr chroot 2 .
282 .It Cm Ciphers
283 Specifies the ciphers allowed for protocol version 2.
284 Multiple ciphers must be comma-separated.
285 The supported ciphers are
286 .Dq 3des-cbc ,
287 .Dq aes128-cbc ,
288 .Dq aes192-cbc ,
289 .Dq aes256-cbc ,
290 .Dq aes128-ctr ,
291 .Dq aes192-ctr ,
292 .Dq aes256-ctr ,
293 .Dq arcfour128 ,
294 .Dq arcfour256 ,
295 .Dq arcfour ,
296 .Dq blowfish-cbc ,
297 and
298 .Dq cast128-cbc .
299 The default is:
300 .Bd -literal -offset 3n
301 aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
302 aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
303 aes256-cbc,arcfour
304 .Ed
305 .It Cm ClientAliveCountMax
306 Sets the number of client alive messages (see below) which may be
307 sent without
308 .Xr sshd 8
309 receiving any messages back from the client.
310 If this threshold is reached while client alive messages are being sent,
311 sshd will disconnect the client, terminating the session.
312 It is important to note that the use of client alive messages is very
313 different from
314 .Cm TCPKeepAlive
315 (below).
316 The client alive messages are sent through the encrypted channel
317 and therefore will not be spoofable.
318 The TCP keepalive option enabled by
319 .Cm TCPKeepAlive
320 is spoofable.
321 The client alive mechanism is valuable when the client or
322 server depend on knowing when a connection has become inactive.
323 .Pp
324 The default value is 3.
325 If
326 .Cm ClientAliveInterval
327 (see below) is set to 15, and
328 .Cm ClientAliveCountMax
329 is left at the default, unresponsive SSH clients
330 will be disconnected after approximately 45 seconds.
331 This option applies to protocol version 2 only.
332 .It Cm ClientAliveInterval
333 Sets a timeout interval in seconds after which if no data has been received
334 from the client,
335 .Xr sshd 8
336 will send a message through the encrypted
337 channel to request a response from the client.
338 The default
339 is 0, indicating that these messages will not be sent to the client.
340 This option applies to protocol version 2 only.
341 .It Cm Compression
342 Specifies whether compression is allowed, or delayed until
343 the user has authenticated successfully.
344 The argument must be
345 .Dq yes ,
346 .Dq delayed ,
347 or
348 .Dq no .
349 The default is
350 .Dq delayed .
351 .It Cm DenyGroups
352 This keyword can be followed by a list of group name patterns, separated
353 by spaces.
354 Login is disallowed for users whose primary group or supplementary
355 group list matches one of the patterns.
356 Only group names are valid; a numerical group ID is not recognized.
357 By default, login is allowed for all groups.
358 The allow/deny directives are processed in the following order:
359 .Cm DenyUsers ,
360 .Cm AllowUsers ,
361 .Cm DenyGroups ,
362 and finally
363 .Cm AllowGroups .
364 .Pp
365 See
366 .Sx PATTERNS
367 in
368 .Xr ssh_config 5
369 for more information on patterns.
370 .It Cm DenyUsers
371 This keyword can be followed by a list of user name patterns, separated
372 by spaces.
373 Login is disallowed for user names that match one of the patterns.
374 Only user names are valid; a numerical user ID is not recognized.
375 By default, login is allowed for all users.
376 If the pattern takes the form USER@HOST then USER and HOST
377 are separately checked, restricting logins to particular
378 users from particular hosts.
379 The allow/deny directives are processed in the following order:
380 .Cm DenyUsers ,
381 .Cm AllowUsers ,
382 .Cm DenyGroups ,
383 and finally
384 .Cm AllowGroups .
385 .Pp
386 See
387 .Sx PATTERNS
388 in
389 .Xr ssh_config 5
390 for more information on patterns.
391 .It Cm ForceCommand
392 Forces the execution of the command specified by
393 .Cm ForceCommand ,
394 ignoring any command supplied by the client and
395 .Pa ~/.ssh/rc
396 if present.
397 The command is invoked by using the user's login shell with the -c option.
398 This applies to shell, command, or subsystem execution.
399 It is most useful inside a
400 .Cm Match
401 block.
402 The command originally supplied by the client is available in the
403 .Ev SSH_ORIGINAL_COMMAND
404 environment variable.
405 Specifying a command of
406 .Dq internal-sftp
407 will force the use of an in-process sftp server that requires no support
408 files when used with
409 .Cm ChrootDirectory .
410 .It Cm GatewayPorts
411 Specifies whether remote hosts are allowed to connect to ports
412 forwarded for the client.
413 By default,
414 .Xr sshd 8
415 binds remote port forwardings to the loopback address.
416 This prevents other remote hosts from connecting to forwarded ports.
417 .Cm GatewayPorts
418 can be used to specify that sshd
419 should allow remote port forwardings to bind to non-loopback addresses, thus
420 allowing other hosts to connect.
421 The argument may be
422 .Dq no
423 to force remote port forwardings to be available to the local host only,
424 .Dq yes
425 to force remote port forwardings to bind to the wildcard address, or
426 .Dq clientspecified
427 to allow the client to select the address to which the forwarding is bound.
428 The default is
429 .Dq no .
430 .It Cm GSSAPIAuthentication
431 Specifies whether user authentication based on GSSAPI is allowed.
432 The default is
433 .Dq no .
434 Note that this option applies to protocol version 2 only.
435 .It Cm GSSAPICleanupCredentials
436 Specifies whether to automatically destroy the user's credentials cache
437 on logout.
438 The default is
439 .Dq yes .
440 Note that this option applies to protocol version 2 only.
441 .It Cm HostbasedAuthentication
442 Specifies whether rhosts or /etc/hosts.equiv authentication together
443 with successful public key client host authentication is allowed
444 (host-based authentication).
445 This option is similar to
446 .Cm RhostsRSAAuthentication
447 and applies to protocol version 2 only.
448 The default is
449 .Dq no .
450 .It Cm HostbasedUsesNameFromPacketOnly
451 Specifies whether or not the server will attempt to perform a reverse
452 name lookup when matching the name in the
453 .Pa ~/.shosts ,
454 .Pa ~/.rhosts ,
455 and
456 .Pa /etc/hosts.equiv
457 files during
458 .Cm HostbasedAuthentication .
459 A setting of
460 .Dq yes
461 means that
462 .Xr sshd 8
463 uses the name supplied by the client rather than
464 attempting to resolve the name from the TCP connection itself.
465 The default is
466 .Dq no .
467 .It Cm HostCertificate
468 Specifies a file containing a public host certificate.
469 The certificate's public key must match a private host key already specified
470 by
471 .Cm HostKey .
472 The default behaviour of
473 .Xr sshd 8
474 is not to load any certificates.
475 .It Cm HostKey
476 Specifies a file containing a private host key
477 used by SSH.
478 The default is
479 .Pa /etc/ssh/ssh_host_key
480 for protocol version 1, and
481 .Pa /etc/ssh/ssh_host_dsa_key ,
482 .Pa /etc/ssh/ssh_host_ecdsa_key
483 and
484 .Pa /etc/ssh/ssh_host_rsa_key
485 for protocol version 2.
486 Note that
487 .Xr sshd 8
488 will refuse to use a file if it is group/world-accessible.
489 It is possible to have multiple host key files.
490 .Dq rsa1
491 keys are used for version 1 and
492 .Dq dsa ,
493 .Dq ecdsa
494 or
495 .Dq rsa
496 are used for version 2 of the SSH protocol.
497 .It Cm IgnoreRhosts
498 Specifies that
499 .Pa .rhosts
500 and
501 .Pa .shosts
502 files will not be used in
503 .Cm RhostsRSAAuthentication
504 or
505 .Cm HostbasedAuthentication .
506 .Pp
507 .Pa /etc/hosts.equiv
508 and
509 .Pa /etc/ssh/shosts.equiv 
510 are still used.
511 The default is
512 .Dq yes .
513 .It Cm IgnoreUserKnownHosts
514 Specifies whether
515 .Xr sshd 8
516 should ignore the user's
517 .Pa ~/.ssh/known_hosts
518 during
519 .Cm RhostsRSAAuthentication
520 or
521 .Cm HostbasedAuthentication .
522 The default is
523 .Dq no .
524 .It Cm IPQoS
525 Specifies the IPv4 type-of-service or DSCP class for the connection.
526 Accepted values are
527 .Dq af11 ,
528 .Dq af12 ,
529 .Dq af13 ,
530 .Dq af14 ,
531 .Dq af22 ,
532 .Dq af23 ,
533 .Dq af31 ,
534 .Dq af32 ,
535 .Dq af33 ,
536 .Dq af41 ,
537 .Dq af42 ,
538 .Dq af43 ,
539 .Dq cs0 ,
540 .Dq cs1 ,
541 .Dq cs2 ,
542 .Dq cs3 ,
543 .Dq cs4 ,
544 .Dq cs5 ,
545 .Dq cs6 ,
546 .Dq cs7 ,
547 .Dq ef ,
548 .Dq lowdelay ,
549 .Dq throughput ,
550 .Dq reliability ,
551 or a numeric value.
552 This option may take one or two arguments, separated by whitespace.
553 If one argument is specified, it is used as the packet class unconditionally.
554 If two values are specified, the first is automatically selected for
555 interactive sessions and the second for non-interactive sessions.
556 The default is
557 .Dq lowdelay
558 for interactive sessions and
559 .Dq throughput
560 for non-interactive sessions.
561 .It Cm KerberosAuthentication
562 Specifies whether the password provided by the user for
563 .Cm PasswordAuthentication
564 will be validated through the Kerberos KDC.
565 To use this option, the server needs a
566 Kerberos servtab which allows the verification of the KDC's identity.
567 The default is
568 .Dq no .
569 .It Cm KerberosGetAFSToken
570 If AFS is active and the user has a Kerberos 5 TGT, attempt to acquire
571 an AFS token before accessing the user's home directory.
572 The default is
573 .Dq no .
574 .It Cm KerberosOrLocalPasswd
575 If password authentication through Kerberos fails then
576 the password will be validated via any additional local mechanism
577 such as
578 .Pa /etc/passwd .
579 The default is
580 .Dq yes .
581 .It Cm KerberosTicketCleanup
582 Specifies whether to automatically destroy the user's ticket cache
583 file on logout.
584 The default is
585 .Dq yes .
586 .It Cm KexAlgorithms
587 Specifies the available KEX (Key Exchange) algorithms.
588 Multiple algorithms must be comma-separated.
589 The default is
590 .Dq ecdh-sha2-nistp256 ,
591 .Dq ecdh-sha2-nistp384 ,
592 .Dq ecdh-sha2-nistp521 ,
593 .Dq diffie-hellman-group-exchange-sha256 ,
594 .Dq diffie-hellman-group-exchange-sha1 ,
595 .Dq diffie-hellman-group14-sha1 ,
596 .Dq diffie-hellman-group1-sha1 .
597 .It Cm KeyRegenerationInterval
598 In protocol version 1, the ephemeral server key is automatically regenerated
599 after this many seconds (if it has been used).
600 The purpose of regeneration is to prevent
601 decrypting captured sessions by later breaking into the machine and
602 stealing the keys.
603 The key is never stored anywhere.
604 If the value is 0, the key is never regenerated.
605 The default is 3600 (seconds).
606 .It Cm ListenAddress
607 Specifies the local addresses
608 .Xr sshd 8
609 should listen on.
610 The following forms may be used:
611 .Pp
612 .Bl -item -offset indent -compact
613 .It
614 .Cm ListenAddress
615 .Sm off
616 .Ar host No | Ar IPv4_addr No | Ar IPv6_addr
617 .Sm on
618 .It
619 .Cm ListenAddress
620 .Sm off
621 .Ar host No | Ar IPv4_addr No : Ar port
622 .Sm on
623 .It
624 .Cm ListenAddress
625 .Sm off
626 .Oo
627 .Ar host No | Ar IPv6_addr Oc : Ar port
628 .Sm on
629 .El
630 .Pp
631 If
632 .Ar port
633 is not specified,
634 sshd will listen on the address and all prior
635 .Cm Port
636 options specified.
637 The default is to listen on all local addresses.
638 Multiple
639 .Cm ListenAddress
640 options are permitted.
641 Additionally, any
642 .Cm Port
643 options must precede this option for non-port qualified addresses.
644 .It Cm LoginGraceTime
645 The server disconnects after this time if the user has not
646 successfully logged in.
647 If the value is 0, there is no time limit.
648 The default is 120 seconds.
649 .It Cm LogLevel
650 Gives the verbosity level that is used when logging messages from
651 .Xr sshd 8 .
652 The possible values are:
653 QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.
654 The default is INFO.
655 DEBUG and DEBUG1 are equivalent.
656 DEBUG2 and DEBUG3 each specify higher levels of debugging output.
657 Logging with a DEBUG level violates the privacy of users and is not recommended.
658 .It Cm MACs
659 Specifies the available MAC (message authentication code) algorithms.
660 The MAC algorithm is used in protocol version 2
661 for data integrity protection.
662 Multiple algorithms must be comma-separated.
663 The default is:
664 .Bd -literal -offset indent
665 hmac-md5,hmac-sha1,umac-64@openssh.com,
666 hmac-ripemd160,hmac-sha1-96,hmac-md5-96,
667 hmac-sha2-256,hmac-sha256-96,hmac-sha2-512,
668 hmac-sha2-512-96
669 .Ed
670 .It Cm Match
671 Introduces a conditional block.
672 If all of the criteria on the
673 .Cm Match
674 line are satisfied, the keywords on the following lines override those
675 set in the global section of the config file, until either another
676 .Cm Match
677 line or the end of the file.
678 .Pp
679 The arguments to
680 .Cm Match
681 are one or more criteria-pattern pairs.
682 The available criteria are
683 .Cm User ,
684 .Cm Group ,
685 .Cm Host ,
686 and
687 .Cm Address .
688 The match patterns may consist of single entries or comma-separated
689 lists and may use the wildcard and negation operators described in the
690 .Sx PATTERNS
691 section of
692 .Xr ssh_config 5 .
693 .Pp
694 The patterns in an
695 .Cm Address
696 criteria may additionally contain addresses to match in CIDR
697 address/masklen format, e.g.\&
698 .Dq 192.0.2.0/24
699 or
700 .Dq 3ffe:ffff::/32 .
701 Note that the mask length provided must be consistent with the address -
702 it is an error to specify a mask length that is too long for the address
703 or one with bits set in this host portion of the address.
704 For example,
705 .Dq 192.0.2.0/33
706 and
707 .Dq 192.0.2.0/8
708 respectively.
709 .Pp
710 Only a subset of keywords may be used on the lines following a
711 .Cm Match
712 keyword.
713 Available keywords are
714 .Cm AllowAgentForwarding ,
715 .Cm AllowTcpForwarding ,
716 .Cm AuthorizedKeysFile ,
717 .Cm AuthorizedPrincipalsFile ,
718 .Cm Banner ,
719 .Cm ChrootDirectory ,
720 .Cm ForceCommand ,
721 .Cm GatewayPorts ,
722 .Cm GSSAPIAuthentication ,
723 .Cm HostbasedAuthentication ,
724 .Cm HostbasedUsesNameFromPacketOnly ,
725 .Cm KbdInteractiveAuthentication ,
726 .Cm KerberosAuthentication ,
727 .Cm MaxAuthTries ,
728 .Cm MaxSessions ,
729 .Cm PasswordAuthentication ,
730 .Cm PermitEmptyPasswords ,
731 .Cm PermitOpen ,
732 .Cm PermitRootLogin ,
733 .Cm PermitTunnel ,
734 .Cm PubkeyAuthentication ,
735 .Cm RhostsRSAAuthentication ,
736 .Cm RSAAuthentication ,
737 .Cm X11DisplayOffset ,
738 .Cm X11Forwarding
739 and
740 .Cm X11UseLocalHost .
741 .It Cm MaxAuthTries
742 Specifies the maximum number of authentication attempts permitted per
743 connection.
744 Once the number of failures reaches half this value,
745 additional failures are logged.
746 The default is 6.
747 .It Cm MaxSessions
748 Specifies the maximum number of open sessions permitted per network connection.
749 The default is 10.
750 .It Cm MaxStartups
751 Specifies the maximum number of concurrent unauthenticated connections to the
752 SSH daemon.
753 Additional connections will be dropped until authentication succeeds or the
754 .Cm LoginGraceTime
755 expires for a connection.
756 The default is 10.
757 .Pp
758 Alternatively, random early drop can be enabled by specifying
759 the three colon separated values
760 .Dq start:rate:full
761 (e.g. "10:30:60").
762 .Xr sshd 8
763 will refuse connection attempts with a probability of
764 .Dq rate/100
765 (30%)
766 if there are currently
767 .Dq start
768 (10)
769 unauthenticated connections.
770 The probability increases linearly and all connection attempts
771 are refused if the number of unauthenticated connections reaches
772 .Dq full
773 (60).
774 .It Cm PasswordAuthentication
775 Specifies whether password authentication is allowed.
776 The default is
777 .Dq yes .
778 Note that if
779 .Cm ChallengeResponseAuthentication
780 is
781 .Dq yes ,
782 .Cm UsePAM
783 is
784 .Dq yes ,
785 and the PAM authentication policy for
786 .Nm sshd
787 includes
788 .Xr pam_unix 8 ,
789 password authentication will be allowed through the challenge-response
790 mechanism regardless of the value of
791 .Cm PasswordAuthentication .
792 .It Cm PermitEmptyPasswords
793 When password authentication is allowed, it specifies whether the
794 server allows login to accounts with empty password strings.
795 The default is
796 .Dq no .
797 .It Cm PermitOpen
798 Specifies the destinations to which TCP port forwarding is permitted.
799 The forwarding specification must be one of the following forms:
800 .Pp
801 .Bl -item -offset indent -compact
802 .It
803 .Cm PermitOpen
804 .Sm off
805 .Ar host : port
806 .Sm on
807 .It
808 .Cm PermitOpen
809 .Sm off
810 .Ar IPv4_addr : port
811 .Sm on
812 .It
813 .Cm PermitOpen
814 .Sm off
815 .Ar \&[ IPv6_addr \&] : port
816 .Sm on
817 .El
818 .Pp
819 Multiple forwards may be specified by separating them with whitespace.
820 An argument of
821 .Dq any
822 can be used to remove all restrictions and permit any forwarding requests.
823 By default all port forwarding requests are permitted.
824 .It Cm PermitRootLogin
825 Specifies whether root can log in using
826 .Xr ssh 1 .
827 The argument must be
828 .Dq yes ,
829 .Dq without-password ,
830 .Dq forced-commands-only ,
831 or
832 .Dq no .
833 The default is
834 .Dq no .
835 Note that if
836 .Cm ChallengeResponseAuthentication
837 is
838 .Dq yes ,
839 the root user may be allowed in with its password even if
840 .Cm PermitRootLogin is set to
841 .Dq without-password .
842 .Pp
843 If this option is set to
844 .Dq without-password ,
845 password authentication is disabled for root.
846 .Pp
847 If this option is set to
848 .Dq forced-commands-only ,
849 root login with public key authentication will be allowed,
850 but only if the
851 .Ar command
852 option has been specified
853 (which may be useful for taking remote backups even if root login is
854 normally not allowed).
855 All other authentication methods are disabled for root.
856 .Pp
857 If this option is set to
858 .Dq no ,
859 root is not allowed to log in.
860 .It Cm PermitTunnel
861 Specifies whether
862 .Xr tun 4
863 device forwarding is allowed.
864 The argument must be
865 .Dq yes ,
866 .Dq point-to-point
867 (layer 3),
868 .Dq ethernet
869 (layer 2), or
870 .Dq no .
871 Specifying
872 .Dq yes
873 permits both
874 .Dq point-to-point
875 and
876 .Dq ethernet .
877 The default is
878 .Dq no .
879 .It Cm PermitUserEnvironment
880 Specifies whether
881 .Pa ~/.ssh/environment
882 and
883 .Cm environment=
884 options in
885 .Pa ~/.ssh/authorized_keys
886 are processed by
887 .Xr sshd 8 .
888 The default is
889 .Dq no .
890 Enabling environment processing may enable users to bypass access
891 restrictions in some configurations using mechanisms such as
892 .Ev LD_PRELOAD .
893 .It Cm PidFile
894 Specifies the file that contains the process ID of the
895 SSH daemon.
896 The default is
897 .Pa /var/run/sshd.pid .
898 .It Cm Port
899 Specifies the port number that
900 .Xr sshd 8
901 listens on.
902 The default is 22.
903 Multiple options of this type are permitted.
904 See also
905 .Cm ListenAddress .
906 .It Cm PrintLastLog
907 Specifies whether
908 .Xr sshd 8
909 should print the date and time of the last user login when a user logs
910 in interactively.
911 The default is
912 .Dq yes .
913 .It Cm PrintMotd
914 Specifies whether
915 .Xr sshd 8
916 should print
917 .Pa /etc/motd
918 when a user logs in interactively.
919 (On some systems it is also printed by the shell,
920 .Pa /etc/profile ,
921 or equivalent.)
922 The default is
923 .Dq yes .
924 .It Cm Protocol
925 Specifies the protocol versions
926 .Xr sshd 8
927 supports.
928 The possible values are
929 .Sq 1
930 and
931 .Sq 2 .
932 Multiple versions must be comma-separated.
933 The default is
934 .Sq 2 .
935 Note that the order of the protocol list does not indicate preference,
936 because the client selects among multiple protocol versions offered
937 by the server.
938 Specifying
939 .Dq 2,1
940 is identical to
941 .Dq 1,2 .
942 .It Cm PubkeyAuthentication
943 Specifies whether public key authentication is allowed.
944 The default is
945 .Dq yes .
946 Note that this option applies to protocol version 2 only.
947 .It Cm RevokedKeys
948 Specifies a list of revoked public keys.
949 Keys listed in this file will be refused for public key authentication.
950 Note that if this file is not readable, then public key authentication will
951 be refused for all users.
952 .It Cm RhostsRSAAuthentication
953 Specifies whether rhosts or
954 .Pa /etc/hosts.equiv
955 authentication together
956 with successful RSA host authentication is allowed.
957 The default is
958 .Dq no .
959 This option applies to protocol version 1 only.
960 .It Cm RSAAuthentication
961 Specifies whether pure RSA authentication is allowed.
962 The default is
963 .Dq yes .
964 This option applies to protocol version 1 only.
965 .It Cm ServerKeyBits
966 Defines the number of bits in the ephemeral protocol version 1 server key.
967 The minimum value is 512, and the default is 1024.
968 .It Cm StrictModes
969 Specifies whether
970 .Xr sshd 8
971 should check file modes and ownership of the
972 user's files and home directory before accepting login.
973 This is normally desirable because novices sometimes accidentally leave their
974 directory or files world-writable.
975 The default is
976 .Dq yes .
977 Note that this does not apply to
978 .Cm ChrootDirectory ,
979 whose permissions and ownership are checked unconditionally.
980 .It Cm Subsystem
981 Configures an external subsystem (e.g. file transfer daemon).
982 Arguments should be a subsystem name and a command (with optional arguments)
983 to execute upon subsystem request.
984 .Pp
985 The command
986 .Xr sftp-server 8
987 implements the
988 .Dq sftp
989 file transfer subsystem.
990 .Pp
991 Alternately the name
992 .Dq internal-sftp
993 implements an in-process
994 .Dq sftp
995 server.
996 This may simplify configurations using
997 .Cm ChrootDirectory
998 to force a different filesystem root on clients.
999 .Pp
1000 By default no subsystems are defined.
1001 Note that this option applies to protocol version 2 only.
1002 .It Cm SyslogFacility
1003 Gives the facility code that is used when logging messages from
1004 .Xr sshd 8 .
1005 The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
1006 LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
1007 The default is AUTH.
1008 .It Cm TCPKeepAlive
1009 Specifies whether the system should send TCP keepalive messages to the
1010 other side.
1011 If they are sent, death of the connection or crash of one
1012 of the machines will be properly noticed.
1013 However, this means that
1014 connections will die if the route is down temporarily, and some people
1015 find it annoying.
1016 On the other hand, if TCP keepalives are not sent,
1017 sessions may hang indefinitely on the server, leaving
1018 .Dq ghost
1019 users and consuming server resources.
1020 .Pp
1021 The default is
1022 .Dq yes
1023 (to send TCP keepalive messages), and the server will notice
1024 if the network goes down or the client host crashes.
1025 This avoids infinitely hanging sessions.
1026 .Pp
1027 To disable TCP keepalive messages, the value should be set to
1028 .Dq no .
1029 .It Cm TrustedUserCAKeys
1030 Specifies a file containing public keys of certificate authorities that are
1031 trusted to sign user certificates for authentication.
1032 Keys are listed one per line; empty lines and comments starting with
1033 .Ql #
1034 are allowed.
1035 If a certificate is presented for authentication and has its signing CA key
1036 listed in this file, then it may be used for authentication for any user
1037 listed in the certificate's principals list.
1038 Note that certificates that lack a list of principals will not be permitted
1039 for authentication using
1040 .Cm TrustedUserCAKeys .
1041 For more details on certificates, see the
1042 .Sx CERTIFICATES
1043 section in
1044 .Xr ssh-keygen 1 .
1045 .It Cm UseDNS
1046 Specifies whether
1047 .Xr sshd 8
1048 should look up the remote host name and check that
1049 the resolved host name for the remote IP address maps back to the
1050 very same IP address.
1051 The default is
1052 .Dq yes .
1053 .It Cm UseLogin
1054 Specifies whether
1055 .Xr login 1
1056 is used for interactive login sessions.
1057 The default is
1058 .Dq no .
1059 Note that
1060 .Xr login 1
1061 is never used for remote command execution.
1062 Note also, that if this is enabled,
1063 .Cm X11Forwarding
1064 will be disabled because
1065 .Xr login 1
1066 does not know how to handle
1067 .Xr xauth 1
1068 cookies.
1069 If
1070 .Cm UsePrivilegeSeparation
1071 is specified, it will be disabled after authentication.
1072 .It Cm UsePAM
1073 Enables the Pluggable Authentication Module interface.
1074 If set to
1075 .Dq yes
1076 this will enable PAM authentication using
1077 .Cm ChallengeResponseAuthentication
1078 and
1079 .Cm PasswordAuthentication
1080 in addition to PAM account and session module processing for all
1081 authentication types.
1082 .Pp
1083 Because PAM challenge-response authentication usually serves an equivalent
1084 role to password authentication, you should disable either
1085 .Cm PasswordAuthentication
1086 or
1087 .Cm ChallengeResponseAuthentication.
1088 .Pp
1089 If
1090 .Cm UsePAM
1091 is enabled, you will not be able to run
1092 .Xr sshd 8
1093 as a non-root user.
1094 The default is
1095 .Dq no .
1096 .It Cm UsePrivilegeSeparation
1097 Specifies whether
1098 .Xr sshd 8
1099 separates privileges by creating an unprivileged child process
1100 to deal with incoming network traffic.
1101 After successful authentication, another process will be created that has
1102 the privilege of the authenticated user.
1103 The goal of privilege separation is to prevent privilege
1104 escalation by containing any corruption within the unprivileged processes.
1105 The default is
1106 .Dq yes .
1107 If
1108 .Cm UsePrivilegeSeparation
1109 is set to
1110 .Dq sandbox
1111 then the pre-authentication unprivileged process is subject to additional
1112 restrictions.
1113 .It Cm VersionAddendum
1114 Specifies a string to append to the regular version string to identify
1115 OS- or site-specific modifications.
1116 The default is
1117 .Dq DragonFly-20110920 .
1118 .It Cm X11DisplayOffset
1119 Specifies the first display number available for
1120 .Xr sshd 8 Ns 's
1121 X11 forwarding.
1122 This prevents sshd from interfering with real X11 servers.
1123 The default is 10.
1124 .It Cm X11Forwarding
1125 Specifies whether X11 forwarding is permitted.
1126 The argument must be
1127 .Dq yes
1128 or
1129 .Dq no .
1130 The default is
1131 .Dq yes .
1132 .Pp
1133 When X11 forwarding is enabled, there may be additional exposure to
1134 the server and to client displays if the
1135 .Xr sshd 8
1136 proxy display is configured to listen on the wildcard address (see
1137 .Cm X11UseLocalhost
1138 below), though this is not the default.
1139 Additionally, the authentication spoofing and authentication data
1140 verification and substitution occur on the client side.
1141 The security risk of using X11 forwarding is that the client's X11
1142 display server may be exposed to attack when the SSH client requests
1143 forwarding (see the warnings for
1144 .Cm ForwardX11
1145 in
1146 .Xr ssh_config 5 ) .
1147 A system administrator may have a stance in which they want to
1148 protect clients that may expose themselves to attack by unwittingly
1149 requesting X11 forwarding, which can warrant a
1150 .Dq no
1151 setting.
1152 .Pp
1153 Note that disabling X11 forwarding does not prevent users from
1154 forwarding X11 traffic, as users can always install their own forwarders.
1155 X11 forwarding is automatically disabled if
1156 .Cm UseLogin
1157 is enabled.
1158 .It Cm X11UseLocalhost
1159 Specifies whether
1160 .Xr sshd 8
1161 should bind the X11 forwarding server to the loopback address or to
1162 the wildcard address.
1163 By default,
1164 sshd binds the forwarding server to the loopback address and sets the
1165 hostname part of the
1166 .Ev DISPLAY
1167 environment variable to
1168 .Dq localhost .
1169 This prevents remote hosts from connecting to the proxy display.
1170 However, some older X11 clients may not function with this
1171 configuration.
1172 .Cm X11UseLocalhost
1173 may be set to
1174 .Dq no
1175 to specify that the forwarding server should be bound to the wildcard
1176 address.
1177 The argument must be
1178 .Dq yes
1179 or
1180 .Dq no .
1181 The default is
1182 .Dq yes .
1183 .It Cm XAuthLocation
1184 Specifies the full pathname of the
1185 .Xr xauth 1
1186 program.
1187 The default is
1188 .Pa /usr/X11R6/bin/xauth .
1189 .El
1190 .Sh TIME FORMATS
1191 .Xr sshd 8
1192 command-line arguments and configuration file options that specify time
1193 may be expressed using a sequence of the form:
1194 .Sm off
1195 .Ar time Op Ar qualifier ,
1196 .Sm on
1197 where
1198 .Ar time
1199 is a positive integer value and
1200 .Ar qualifier
1201 is one of the following:
1202 .Pp
1203 .Bl -tag -width Ds -compact -offset indent
1204 .It Aq Cm none
1205 seconds
1206 .It Cm s | Cm S
1207 seconds
1208 .It Cm m | Cm M
1209 minutes
1210 .It Cm h | Cm H
1211 hours
1212 .It Cm d | Cm D
1213 days
1214 .It Cm w | Cm W
1215 weeks
1216 .El
1217 .Pp
1218 Each member of the sequence is added together to calculate
1219 the total time value.
1220 .Pp
1221 Time format examples:
1222 .Pp
1223 .Bl -tag -width Ds -compact -offset indent
1224 .It 600
1225 600 seconds (10 minutes)
1226 .It 10m
1227 10 minutes
1228 .It 1h30m
1229 1 hour 30 minutes (90 minutes)
1230 .El
1231 .Sh FILES
1232 .Bl -tag -width Ds
1233 .It Pa /etc/ssh/sshd_config
1234 Contains configuration data for
1235 .Xr sshd 8 .
1236 This file should be writable by root only, but it is recommended
1237 (though not necessary) that it be world-readable.
1238 .El
1239 .Sh SEE ALSO
1240 .Xr sshd 8
1241 .Sh AUTHORS
1242 OpenSSH is a derivative of the original and free
1243 ssh 1.2.12 release by Tatu Ylonen.
1244 Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
1245 Theo de Raadt and Dug Song
1246 removed many bugs, re-added newer features and
1247 created OpenSSH.
1248 Markus Friedl contributed the support for SSH
1249 protocol versions 1.5 and 2.0.
1250 Niels Provos and Markus Friedl contributed support
1251 for privilege separation.