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