blob: 6dce0c70c3d19fcc00d07c9ea068070d144accc9 [file] [log] [blame]
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001.\"
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.\"
Adam Langleyd0592972015-03-30 14:49:51 -070036.\" $OpenBSD: sshd_config.5,v 1.194 2015/02/20 23:46:01 djm Exp $
37.Dd $Mdocdate: February 20 2015 $
Greg Hartmanbd77cf72015-02-25 13:21:06 -080038.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
47reads configuration data from
48.Pa /etc/ssh/sshd_config
49(or the file specified with
50.Fl f
51on the command line).
52The file contains keyword-argument pairs, one per line.
53Lines starting with
54.Ql #
55and empty lines are interpreted as comments.
56Arguments may optionally be enclosed in double quotes
57.Pq \&"
58in order to represent arguments containing spaces.
59.Pp
60The possible
61keywords and their meanings are as follows (note that
62keywords are case-insensitive and arguments are case-sensitive):
63.Bl -tag -width Ds
64.It Cm AcceptEnv
65Specifies what environment variables sent by the client will be copied into
66the session's
67.Xr environ 7 .
68See
69.Cm SendEnv
70in
71.Xr ssh_config 5
72for how to configure the client.
73Note that environment passing is only supported for protocol 2.
74Variables are specified by name, which may contain the wildcard characters
75.Ql *
76and
77.Ql \&? .
78Multiple environment variables may be separated by whitespace or spread
79across multiple
80.Cm AcceptEnv
81directives.
82Be warned that some environment variables could be used to bypass restricted
83user environments.
84For this reason, care should be taken in the use of this directive.
85The default is not to accept any environment variables.
86.It Cm AddressFamily
87Specifies which address family should be used by
88.Xr sshd 8 .
89Valid arguments are
90.Dq any ,
91.Dq inet
92(use IPv4 only), or
93.Dq inet6
94(use IPv6 only).
95The default is
96.Dq any .
97.It Cm AllowAgentForwarding
98Specifies whether
99.Xr ssh-agent 1
100forwarding is permitted.
101The default is
102.Dq yes .
103Note that disabling agent forwarding does not improve security
104unless users are also denied shell access, as they can always install
105their own forwarders.
106.It Cm AllowGroups
107This keyword can be followed by a list of group name patterns, separated
108by spaces.
109If specified, login is allowed only for users whose primary
110group or supplementary group list matches one of the patterns.
111Only group names are valid; a numerical group ID is not recognized.
112By default, login is allowed for all groups.
113The allow/deny directives are processed in the following order:
114.Cm DenyUsers ,
115.Cm AllowUsers ,
116.Cm DenyGroups ,
117and finally
118.Cm AllowGroups .
119.Pp
Adam Langleyd0592972015-03-30 14:49:51 -0700120See PATTERNS in
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800121.Xr ssh_config 5
122for more information on patterns.
123.It Cm AllowTcpForwarding
124Specifies whether TCP forwarding is permitted.
Adam Langleyd0592972015-03-30 14:49:51 -0700125The available options are
126.Dq yes
127or
128.Dq all
129to allow TCP forwarding,
130.Dq no
131to prevent all TCP forwarding,
132.Dq local
133to allow local (from the perspective of
134.Xr ssh 1 )
135forwarding only or
136.Dq remote
137to allow remote forwarding only.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800138The default is
139.Dq yes .
140Note that disabling TCP forwarding does not improve security unless
141users are also denied shell access, as they can always install their
142own forwarders.
Adam Langleyd0592972015-03-30 14:49:51 -0700143.It Cm AllowStreamLocalForwarding
144Specifies whether StreamLocal (Unix-domain socket) forwarding is permitted.
145The available options are
146.Dq yes
147or
148.Dq all
149to allow StreamLocal forwarding,
150.Dq no
151to prevent all StreamLocal forwarding,
152.Dq local
153to allow local (from the perspective of
154.Xr ssh 1 )
155forwarding only or
156.Dq remote
157to allow remote forwarding only.
158The default is
159.Dq yes .
160Note that disabling StreamLocal forwarding does not improve security unless
161users are also denied shell access, as they can always install their
162own forwarders.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800163.It Cm AllowUsers
164This keyword can be followed by a list of user name patterns, separated
165by spaces.
166If specified, login is allowed only for user names that
167match one of the patterns.
168Only user names are valid; a numerical user ID is not recognized.
169By default, login is allowed for all users.
170If the pattern takes the form USER@HOST then USER and HOST
171are separately checked, restricting logins to particular
172users from particular hosts.
173The allow/deny directives are processed in the following order:
174.Cm DenyUsers ,
175.Cm AllowUsers ,
176.Cm DenyGroups ,
177and finally
178.Cm AllowGroups .
179.Pp
Adam Langleyd0592972015-03-30 14:49:51 -0700180See PATTERNS in
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800181.Xr ssh_config 5
182for more information on patterns.
Adam Langleyd0592972015-03-30 14:49:51 -0700183.It Cm AuthenticationMethods
184Specifies the authentication methods that must be successfully completed
185for a user to be granted access.
186This option must be followed by one or more comma-separated lists of
187authentication method names.
188Successful authentication requires completion of every method in at least
189one of these lists.
190.Pp
191For example, an argument of
192.Dq publickey,password publickey,keyboard-interactive
193would require the user to complete public key authentication, followed by
194either password or keyboard interactive authentication.
195Only methods that are next in one or more lists are offered at each stage,
196so for this example, it would not be possible to attempt password or
197keyboard-interactive authentication before public key.
198.Pp
199For keyboard interactive authentication it is also possible to
200restrict authentication to a specific device by appending a
201colon followed by the device identifier
202.Dq bsdauth ,
203.Dq pam ,
204or
205.Dq skey ,
206depending on the server configuration.
207For example,
208.Dq keyboard-interactive:bsdauth
209would restrict keyboard interactive authentication to the
210.Dq bsdauth
211device.
212.Pp
213If the
214.Dq publickey
215method is listed more than once,
216.Xr sshd 8
217verifies that keys that have been used successfully are not reused for
218subsequent authentications.
219For example, an
220.Cm AuthenticationMethods
221of
222.Dq publickey,publickey
223will require successful authentication using two different public keys.
224.Pp
225This option is only available for SSH protocol 2 and will yield a fatal
226error if enabled if protocol 1 is also enabled.
227Note that each authentication method listed should also be explicitly enabled
228in the configuration.
229The default is not to require multiple authentication; successful completion
230of a single authentication method is sufficient.
231.It Cm AuthorizedKeysCommand
232Specifies a program to be used to look up the user's public keys.
233The program must be owned by root and not writable by group or others.
234It will be invoked with a single argument of the username
235being authenticated, and should produce on standard output zero or
236more lines of authorized_keys output (see AUTHORIZED_KEYS in
237.Xr sshd 8 ) .
238If a key supplied by AuthorizedKeysCommand does not successfully authenticate
239and authorize the user then public key authentication continues using the usual
240.Cm AuthorizedKeysFile
241files.
242By default, no AuthorizedKeysCommand is run.
243.It Cm AuthorizedKeysCommandUser
244Specifies the user under whose account the AuthorizedKeysCommand is run.
245It is recommended to use a dedicated user that has no other role on the host
246than running authorized keys commands.
247If
248.Cm AuthorizedKeysCommand
249is specified but
250.Cm AuthorizedKeysCommandUser
251is not, then
252.Xr sshd 8
253will refuse to start.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800254.It Cm AuthorizedKeysFile
255Specifies the file that contains the public keys that can be used
256for user authentication.
257The format is described in the
Adam Langleyd0592972015-03-30 14:49:51 -0700258AUTHORIZED_KEYS FILE FORMAT
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800259section of
260.Xr sshd 8 .
261.Cm AuthorizedKeysFile
262may contain tokens of the form %T which are substituted during connection
263setup.
264The following tokens are defined: %% is replaced by a literal '%',
265%h is replaced by the home directory of the user being authenticated, and
266%u is replaced by the username of that user.
267After expansion,
268.Cm AuthorizedKeysFile
269is taken to be an absolute path or one relative to the user's home
270directory.
271Multiple files may be listed, separated by whitespace.
272The default is
273.Dq .ssh/authorized_keys .ssh/authorized_keys2 .
274.It Cm AuthorizedPrincipalsFile
275Specifies a file that lists principal names that are accepted for
276certificate authentication.
277When using certificates signed by a key listed in
278.Cm TrustedUserCAKeys ,
279this file lists names, one of which must appear in the certificate for it
280to be accepted for authentication.
281Names are listed one per line preceded by key options (as described
Adam Langleyd0592972015-03-30 14:49:51 -0700282in AUTHORIZED_KEYS FILE FORMAT in
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800283.Xr sshd 8 ) .
284Empty lines and comments starting with
285.Ql #
286are ignored.
287.Pp
288.Cm AuthorizedPrincipalsFile
289may contain tokens of the form %T which are substituted during connection
290setup.
291The following tokens are defined: %% is replaced by a literal '%',
292%h is replaced by the home directory of the user being authenticated, and
293%u is replaced by the username of that user.
294After expansion,
295.Cm AuthorizedPrincipalsFile
296is taken to be an absolute path or one relative to the user's home
297directory.
298.Pp
Adam Langleyd0592972015-03-30 14:49:51 -0700299The default is
300.Dq none ,
301i.e. not to use a principals file \(en in this case, the username
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800302of the user must appear in a certificate's principals list for it to be
303accepted.
304Note that
305.Cm AuthorizedPrincipalsFile
306is only used when authentication proceeds using a CA listed in
307.Cm TrustedUserCAKeys
308and is not consulted for certification authorities trusted via
309.Pa ~/.ssh/authorized_keys ,
310though the
311.Cm principals=
312key option offers a similar facility (see
313.Xr sshd 8
314for details).
315.It Cm Banner
316The contents of the specified file are sent to the remote user before
317authentication is allowed.
318If the argument is
319.Dq none
320then no banner is displayed.
321This option is only available for protocol version 2.
322By default, no banner is displayed.
323.It Cm ChallengeResponseAuthentication
324Specifies whether challenge-response authentication is allowed (e.g. via
Adam Langleyd0592972015-03-30 14:49:51 -0700325PAM or through authentication styles supported in
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800326.Xr login.conf 5 )
327The default is
328.Dq yes .
329.It Cm ChrootDirectory
330Specifies the pathname of a directory to
331.Xr chroot 2
332to after authentication.
Adam Langleyd0592972015-03-30 14:49:51 -0700333At session startup
334.Xr sshd 8
335checks that all components of the pathname are root-owned directories
336which are not writable by any other user or group.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800337After the chroot,
338.Xr sshd 8
339changes the working directory to the user's home directory.
340.Pp
341The pathname may contain the following tokens that are expanded at runtime once
342the connecting user has been authenticated: %% is replaced by a literal '%',
343%h is replaced by the home directory of the user being authenticated, and
344%u is replaced by the username of that user.
345.Pp
346The
347.Cm ChrootDirectory
348must contain the necessary files and directories to support the
349user's session.
350For an interactive session this requires at least a shell, typically
351.Xr sh 1 ,
352and basic
353.Pa /dev
354nodes such as
355.Xr null 4 ,
356.Xr zero 4 ,
357.Xr stdin 4 ,
358.Xr stdout 4 ,
359.Xr stderr 4 ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800360and
361.Xr tty 4
362devices.
363For file transfer sessions using
364.Dq sftp ,
365no additional configuration of the environment is necessary if the
366in-process sftp server is used,
Adam Langleyd0592972015-03-30 14:49:51 -0700367though sessions which use logging may require
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800368.Pa /dev/log
Adam Langleyd0592972015-03-30 14:49:51 -0700369inside the chroot directory on some operating systems (see
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800370.Xr sftp-server 8
371for details).
372.Pp
Adam Langleyd0592972015-03-30 14:49:51 -0700373For safety, it is very important that the directory hierarchy be
374prevented from modification by other processes on the system (especially
375those outside the jail).
376Misconfiguration can lead to unsafe environments which
377.Xr sshd 8
378cannot detect.
379.Pp
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800380The default is not to
381.Xr chroot 2 .
382.It Cm Ciphers
383Specifies the ciphers allowed for protocol version 2.
384Multiple ciphers must be comma-separated.
Adam Langleyd0592972015-03-30 14:49:51 -0700385The supported ciphers are:
386.Pp
387.Bl -item -compact -offset indent
388.It
3893des-cbc
390.It
391aes128-cbc
392.It
393aes192-cbc
394.It
395aes256-cbc
396.It
397aes128-ctr
398.It
399aes192-ctr
400.It
401aes256-ctr
402.It
403aes128-gcm@openssh.com
404.It
405aes256-gcm@openssh.com
406.It
407arcfour
408.It
409arcfour128
410.It
411arcfour256
412.It
413blowfish-cbc
414.It
415cast128-cbc
416.It
417chacha20-poly1305@openssh.com
418.El
419.Pp
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800420The default is:
Adam Langleyd0592972015-03-30 14:49:51 -0700421.Bd -literal -offset indent
422aes128-ctr,aes192-ctr,aes256-ctr,
423aes128-gcm@openssh.com,aes256-gcm@openssh.com,
424chacha20-poly1305@openssh.com
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800425.Ed
Adam Langleyd0592972015-03-30 14:49:51 -0700426.Pp
427The list of available ciphers may also be obtained using the
428.Fl Q
429option of
430.Xr ssh 1
431with an argument of
432.Dq cipher .
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800433.It Cm ClientAliveCountMax
434Sets the number of client alive messages (see below) which may be
435sent without
436.Xr sshd 8
437receiving any messages back from the client.
438If this threshold is reached while client alive messages are being sent,
439sshd will disconnect the client, terminating the session.
440It is important to note that the use of client alive messages is very
441different from
442.Cm TCPKeepAlive
443(below).
444The client alive messages are sent through the encrypted channel
445and therefore will not be spoofable.
446The TCP keepalive option enabled by
447.Cm TCPKeepAlive
448is spoofable.
449The client alive mechanism is valuable when the client or
450server depend on knowing when a connection has become inactive.
451.Pp
452The default value is 3.
453If
454.Cm ClientAliveInterval
455(see below) is set to 15, and
456.Cm ClientAliveCountMax
457is left at the default, unresponsive SSH clients
458will be disconnected after approximately 45 seconds.
459This option applies to protocol version 2 only.
460.It Cm ClientAliveInterval
461Sets a timeout interval in seconds after which if no data has been received
462from the client,
463.Xr sshd 8
464will send a message through the encrypted
465channel to request a response from the client.
466The default
467is 0, indicating that these messages will not be sent to the client.
468This option applies to protocol version 2 only.
469.It Cm Compression
470Specifies whether compression is allowed, or delayed until
471the user has authenticated successfully.
472The argument must be
473.Dq yes ,
474.Dq delayed ,
475or
476.Dq no .
477The default is
478.Dq delayed .
479.It Cm DenyGroups
480This keyword can be followed by a list of group name patterns, separated
481by spaces.
482Login is disallowed for users whose primary group or supplementary
483group list matches one of the patterns.
484Only group names are valid; a numerical group ID is not recognized.
485By default, login is allowed for all groups.
486The allow/deny directives are processed in the following order:
487.Cm DenyUsers ,
488.Cm AllowUsers ,
489.Cm DenyGroups ,
490and finally
491.Cm AllowGroups .
492.Pp
Adam Langleyd0592972015-03-30 14:49:51 -0700493See PATTERNS in
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800494.Xr ssh_config 5
495for more information on patterns.
496.It Cm DenyUsers
497This keyword can be followed by a list of user name patterns, separated
498by spaces.
499Login is disallowed for user names that match one of the patterns.
500Only user names are valid; a numerical user ID is not recognized.
501By default, login is allowed for all users.
502If the pattern takes the form USER@HOST then USER and HOST
503are separately checked, restricting logins to particular
504users from particular hosts.
505The allow/deny directives are processed in the following order:
506.Cm DenyUsers ,
507.Cm AllowUsers ,
508.Cm DenyGroups ,
509and finally
510.Cm AllowGroups .
511.Pp
Adam Langleyd0592972015-03-30 14:49:51 -0700512See PATTERNS in
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800513.Xr ssh_config 5
514for more information on patterns.
Adam Langleyd0592972015-03-30 14:49:51 -0700515.It Cm FingerprintHash
516Specifies the hash algorithm used when logging key fingerprints.
517Valid options are:
518.Dq md5
519and
520.Dq sha256 .
521The default is
522.Dq sha256 .
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800523.It Cm ForceCommand
524Forces the execution of the command specified by
525.Cm ForceCommand ,
526ignoring any command supplied by the client and
527.Pa ~/.ssh/rc
528if present.
529The command is invoked by using the user's login shell with the -c option.
530This applies to shell, command, or subsystem execution.
531It is most useful inside a
532.Cm Match
533block.
534The command originally supplied by the client is available in the
535.Ev SSH_ORIGINAL_COMMAND
536environment variable.
537Specifying a command of
538.Dq internal-sftp
539will force the use of an in-process sftp server that requires no support
540files when used with
541.Cm ChrootDirectory .
542.It Cm GatewayPorts
543Specifies whether remote hosts are allowed to connect to ports
544forwarded for the client.
545By default,
546.Xr sshd 8
547binds remote port forwardings to the loopback address.
548This prevents other remote hosts from connecting to forwarded ports.
549.Cm GatewayPorts
550can be used to specify that sshd
551should allow remote port forwardings to bind to non-loopback addresses, thus
552allowing other hosts to connect.
553The argument may be
554.Dq no
555to force remote port forwardings to be available to the local host only,
556.Dq yes
557to force remote port forwardings to bind to the wildcard address, or
558.Dq clientspecified
559to allow the client to select the address to which the forwarding is bound.
560The default is
561.Dq no .
562.It Cm GSSAPIAuthentication
563Specifies whether user authentication based on GSSAPI is allowed.
564The default is
565.Dq no .
566Note that this option applies to protocol version 2 only.
567.It Cm GSSAPICleanupCredentials
568Specifies whether to automatically destroy the user's credentials cache
569on logout.
570The default is
571.Dq yes .
572Note that this option applies to protocol version 2 only.
Adam Langleyd0592972015-03-30 14:49:51 -0700573.It Cm HostbasedAcceptedKeyTypes
574Specifies the key types that will be accepted for hostbased authentication
575as a comma-separated pattern list.
576The default
577.Dq *
578will allow all key types.
579The
580.Fl Q
581option of
582.Xr ssh 1
583may be used to list supported key types.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800584.It Cm HostbasedAuthentication
585Specifies whether rhosts or /etc/hosts.equiv authentication together
586with successful public key client host authentication is allowed
587(host-based authentication).
588This option is similar to
589.Cm RhostsRSAAuthentication
590and applies to protocol version 2 only.
591The default is
592.Dq no .
593.It Cm HostbasedUsesNameFromPacketOnly
594Specifies whether or not the server will attempt to perform a reverse
595name lookup when matching the name in the
596.Pa ~/.shosts ,
597.Pa ~/.rhosts ,
598and
599.Pa /etc/hosts.equiv
600files during
601.Cm HostbasedAuthentication .
602A setting of
603.Dq yes
604means that
605.Xr sshd 8
606uses the name supplied by the client rather than
607attempting to resolve the name from the TCP connection itself.
608The default is
609.Dq no .
610.It Cm HostCertificate
611Specifies a file containing a public host certificate.
612The certificate's public key must match a private host key already specified
613by
614.Cm HostKey .
615The default behaviour of
616.Xr sshd 8
617is not to load any certificates.
618.It Cm HostKey
619Specifies a file containing a private host key
620used by SSH.
621The default is
622.Pa /etc/ssh/ssh_host_key
623for protocol version 1, and
624.Pa /etc/ssh/ssh_host_dsa_key ,
Adam Langleyd0592972015-03-30 14:49:51 -0700625.Pa /etc/ssh/ssh_host_ecdsa_key ,
626.Pa /etc/ssh/ssh_host_ed25519_key
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800627and
628.Pa /etc/ssh/ssh_host_rsa_key
629for protocol version 2.
630Note that
631.Xr sshd 8
632will refuse to use a file if it is group/world-accessible.
633It is possible to have multiple host key files.
634.Dq rsa1
635keys are used for version 1 and
636.Dq dsa ,
Adam Langleyd0592972015-03-30 14:49:51 -0700637.Dq ecdsa ,
638.Dq ed25519
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800639or
640.Dq rsa
641are used for version 2 of the SSH protocol.
Adam Langleyd0592972015-03-30 14:49:51 -0700642It is also possible to specify public host key files instead.
643In this case operations on the private key will be delegated
644to an
645.Xr ssh-agent 1 .
646.It Cm HostKeyAgent
647Identifies the UNIX-domain socket used to communicate
648with an agent that has access to the private host keys.
649If
650.Dq SSH_AUTH_SOCK
651is specified, the location of the socket will be read from the
652.Ev SSH_AUTH_SOCK
653environment variable.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800654.It Cm IgnoreRhosts
655Specifies that
656.Pa .rhosts
657and
658.Pa .shosts
659files will not be used in
660.Cm RhostsRSAAuthentication
661or
662.Cm HostbasedAuthentication .
663.Pp
664.Pa /etc/hosts.equiv
665and
666.Pa /etc/shosts.equiv
667are still used.
668The default is
669.Dq yes .
670.It Cm IgnoreUserKnownHosts
671Specifies whether
672.Xr sshd 8
673should ignore the user's
674.Pa ~/.ssh/known_hosts
675during
676.Cm RhostsRSAAuthentication
677or
678.Cm HostbasedAuthentication .
679The default is
680.Dq no .
681.It Cm IPQoS
682Specifies the IPv4 type-of-service or DSCP class for the connection.
683Accepted values are
684.Dq af11 ,
685.Dq af12 ,
686.Dq af13 ,
Adam Langleyd0592972015-03-30 14:49:51 -0700687.Dq af21 ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800688.Dq af22 ,
689.Dq af23 ,
690.Dq af31 ,
691.Dq af32 ,
692.Dq af33 ,
693.Dq af41 ,
694.Dq af42 ,
695.Dq af43 ,
696.Dq cs0 ,
697.Dq cs1 ,
698.Dq cs2 ,
699.Dq cs3 ,
700.Dq cs4 ,
701.Dq cs5 ,
702.Dq cs6 ,
703.Dq cs7 ,
704.Dq ef ,
705.Dq lowdelay ,
706.Dq throughput ,
707.Dq reliability ,
708or a numeric value.
709This option may take one or two arguments, separated by whitespace.
710If one argument is specified, it is used as the packet class unconditionally.
711If two values are specified, the first is automatically selected for
712interactive sessions and the second for non-interactive sessions.
713The default is
714.Dq lowdelay
715for interactive sessions and
716.Dq throughput
717for non-interactive sessions.
Adam Langleyd0592972015-03-30 14:49:51 -0700718.It Cm KbdInteractiveAuthentication
719Specifies whether to allow keyboard-interactive authentication.
720The argument to this keyword must be
721.Dq yes
722or
723.Dq no .
724The default is to use whatever value
725.Cm ChallengeResponseAuthentication
726is set to
727(by default
728.Dq yes ) .
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800729.It Cm KerberosAuthentication
730Specifies whether the password provided by the user for
731.Cm PasswordAuthentication
732will be validated through the Kerberos KDC.
733To use this option, the server needs a
734Kerberos servtab which allows the verification of the KDC's identity.
735The default is
736.Dq no .
737.It Cm KerberosGetAFSToken
738If AFS is active and the user has a Kerberos 5 TGT, attempt to acquire
739an AFS token before accessing the user's home directory.
740The default is
741.Dq no .
742.It Cm KerberosOrLocalPasswd
743If password authentication through Kerberos fails then
744the password will be validated via any additional local mechanism
745such as
746.Pa /etc/passwd .
747The default is
748.Dq yes .
749.It Cm KerberosTicketCleanup
750Specifies whether to automatically destroy the user's ticket cache
751file on logout.
752The default is
753.Dq yes .
754.It Cm KexAlgorithms
755Specifies the available KEX (Key Exchange) algorithms.
756Multiple algorithms must be comma-separated.
Adam Langleyd0592972015-03-30 14:49:51 -0700757The supported algorithms are:
758.Pp
759.Bl -item -compact -offset indent
760.It
761curve25519-sha256@libssh.org
762.It
763diffie-hellman-group1-sha1
764.It
765diffie-hellman-group14-sha1
766.It
767diffie-hellman-group-exchange-sha1
768.It
769diffie-hellman-group-exchange-sha256
770.It
771ecdh-sha2-nistp256
772.It
773ecdh-sha2-nistp384
774.It
775ecdh-sha2-nistp521
776.El
777.Pp
778The default is:
779.Bd -literal -offset indent
780curve25519-sha256@libssh.org,
781ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
782diffie-hellman-group-exchange-sha256,
783diffie-hellman-group14-sha1
784.Ed
785.Pp
786The list of available key exchange algorithms may also be obtained using the
787.Fl Q
788option of
789.Xr ssh 1
790with an argument of
791.Dq kex .
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800792.It Cm KeyRegenerationInterval
793In protocol version 1, the ephemeral server key is automatically regenerated
794after this many seconds (if it has been used).
795The purpose of regeneration is to prevent
796decrypting captured sessions by later breaking into the machine and
797stealing the keys.
798The key is never stored anywhere.
799If the value is 0, the key is never regenerated.
800The default is 3600 (seconds).
801.It Cm ListenAddress
802Specifies the local addresses
803.Xr sshd 8
804should listen on.
805The following forms may be used:
806.Pp
807.Bl -item -offset indent -compact
808.It
809.Cm ListenAddress
810.Sm off
Adam Langleyd0592972015-03-30 14:49:51 -0700811.Ar host | Ar IPv4_addr | Ar IPv6_addr
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800812.Sm on
813.It
814.Cm ListenAddress
815.Sm off
Adam Langleyd0592972015-03-30 14:49:51 -0700816.Ar host | Ar IPv4_addr : Ar port
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800817.Sm on
818.It
819.Cm ListenAddress
820.Sm off
821.Oo
Adam Langleyd0592972015-03-30 14:49:51 -0700822.Ar host | Ar IPv6_addr Oc : Ar port
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800823.Sm on
824.El
825.Pp
826If
827.Ar port
828is not specified,
829sshd will listen on the address and all prior
830.Cm Port
831options specified.
832The default is to listen on all local addresses.
833Multiple
834.Cm ListenAddress
835options are permitted.
836Additionally, any
837.Cm Port
838options must precede this option for non-port qualified addresses.
839.It Cm LoginGraceTime
840The server disconnects after this time if the user has not
841successfully logged in.
842If the value is 0, there is no time limit.
843The default is 120 seconds.
844.It Cm LogLevel
845Gives the verbosity level that is used when logging messages from
846.Xr sshd 8 .
847The possible values are:
848QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.
849The default is INFO.
850DEBUG and DEBUG1 are equivalent.
851DEBUG2 and DEBUG3 each specify higher levels of debugging output.
852Logging with a DEBUG level violates the privacy of users and is not recommended.
853.It Cm MACs
854Specifies the available MAC (message authentication code) algorithms.
855The MAC algorithm is used in protocol version 2
856for data integrity protection.
857Multiple algorithms must be comma-separated.
Adam Langleyd0592972015-03-30 14:49:51 -0700858The algorithms that contain
859.Dq -etm
860calculate the MAC after encryption (encrypt-then-mac).
861These are considered safer and their use recommended.
862The supported MACs are:
863.Pp
864.Bl -item -compact -offset indent
865.It
866hmac-md5
867.It
868hmac-md5-96
869.It
870hmac-ripemd160
871.It
872hmac-sha1
873.It
874hmac-sha1-96
875.It
876hmac-sha2-256
877.It
878hmac-sha2-512
879.It
880umac-64@openssh.com
881.It
882umac-128@openssh.com
883.It
884hmac-md5-etm@openssh.com
885.It
886hmac-md5-96-etm@openssh.com
887.It
888hmac-ripemd160-etm@openssh.com
889.It
890hmac-sha1-etm@openssh.com
891.It
892hmac-sha1-96-etm@openssh.com
893.It
894hmac-sha2-256-etm@openssh.com
895.It
896hmac-sha2-512-etm@openssh.com
897.It
898umac-64-etm@openssh.com
899.It
900umac-128-etm@openssh.com
901.El
902.Pp
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800903The default is:
904.Bd -literal -offset indent
Adam Langleyd0592972015-03-30 14:49:51 -0700905umac-64-etm@openssh.com,umac-128-etm@openssh.com,
906hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
907umac-64@openssh.com,umac-128@openssh.com,
908hmac-sha2-256,hmac-sha2-512
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800909.Ed
Adam Langleyd0592972015-03-30 14:49:51 -0700910.Pp
911The list of available MAC algorithms may also be obtained using the
912.Fl Q
913option of
914.Xr ssh 1
915with an argument of
916.Dq mac .
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800917.It Cm Match
918Introduces a conditional block.
919If all of the criteria on the
920.Cm Match
921line are satisfied, the keywords on the following lines override those
922set in the global section of the config file, until either another
923.Cm Match
924line or the end of the file.
Adam Langleyd0592972015-03-30 14:49:51 -0700925If a keyword appears in multiple
926.Cm Match
927blocks that are satisfied, only the first instance of the keyword is
928applied.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800929.Pp
930The arguments to
931.Cm Match
Adam Langleyd0592972015-03-30 14:49:51 -0700932are one or more criteria-pattern pairs or the single token
933.Cm All
934which matches all criteria.
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800935The available criteria are
936.Cm User ,
937.Cm Group ,
938.Cm Host ,
Adam Langleyd0592972015-03-30 14:49:51 -0700939.Cm LocalAddress ,
940.Cm LocalPort ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800941and
942.Cm Address .
943The match patterns may consist of single entries or comma-separated
944lists and may use the wildcard and negation operators described in the
Adam Langleyd0592972015-03-30 14:49:51 -0700945PATTERNS section of
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800946.Xr ssh_config 5 .
947.Pp
948The patterns in an
949.Cm Address
950criteria may additionally contain addresses to match in CIDR
951address/masklen format, e.g.\&
952.Dq 192.0.2.0/24
953or
954.Dq 3ffe:ffff::/32 .
955Note that the mask length provided must be consistent with the address -
956it is an error to specify a mask length that is too long for the address
957or one with bits set in this host portion of the address.
958For example,
959.Dq 192.0.2.0/33
960and
961.Dq 192.0.2.0/8
962respectively.
963.Pp
964Only a subset of keywords may be used on the lines following a
965.Cm Match
966keyword.
967Available keywords are
Adam Langleyd0592972015-03-30 14:49:51 -0700968.Cm AcceptEnv ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800969.Cm AllowAgentForwarding ,
Adam Langleyd0592972015-03-30 14:49:51 -0700970.Cm AllowGroups ,
971.Cm AllowStreamLocalForwarding ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800972.Cm AllowTcpForwarding ,
Adam Langleyd0592972015-03-30 14:49:51 -0700973.Cm AllowUsers ,
974.Cm AuthenticationMethods ,
975.Cm AuthorizedKeysCommand ,
976.Cm AuthorizedKeysCommandUser ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800977.Cm AuthorizedKeysFile ,
978.Cm AuthorizedPrincipalsFile ,
979.Cm Banner ,
980.Cm ChrootDirectory ,
Adam Langleyd0592972015-03-30 14:49:51 -0700981.Cm DenyGroups ,
982.Cm DenyUsers ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800983.Cm ForceCommand ,
984.Cm GatewayPorts ,
985.Cm GSSAPIAuthentication ,
Adam Langleyd0592972015-03-30 14:49:51 -0700986.Cm HostbasedAcceptedKeyTypes ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800987.Cm HostbasedAuthentication ,
988.Cm HostbasedUsesNameFromPacketOnly ,
Adam Langleyd0592972015-03-30 14:49:51 -0700989.Cm IPQoS ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800990.Cm KbdInteractiveAuthentication ,
991.Cm KerberosAuthentication ,
992.Cm MaxAuthTries ,
993.Cm MaxSessions ,
994.Cm PasswordAuthentication ,
995.Cm PermitEmptyPasswords ,
996.Cm PermitOpen ,
997.Cm PermitRootLogin ,
Adam Langleyd0592972015-03-30 14:49:51 -0700998.Cm PermitTTY ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -0800999.Cm PermitTunnel ,
Adam Langleyd0592972015-03-30 14:49:51 -07001000.Cm PermitUserRC ,
1001.Cm PubkeyAcceptedKeyTypes ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001002.Cm PubkeyAuthentication ,
Adam Langleyd0592972015-03-30 14:49:51 -07001003.Cm RekeyLimit ,
1004.Cm RevokedKeys ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001005.Cm RhostsRSAAuthentication ,
1006.Cm RSAAuthentication ,
Adam Langleyd0592972015-03-30 14:49:51 -07001007.Cm StreamLocalBindMask ,
1008.Cm StreamLocalBindUnlink ,
1009.Cm TrustedUserCAKeys ,
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001010.Cm X11DisplayOffset ,
1011.Cm X11Forwarding
1012and
1013.Cm X11UseLocalHost .
1014.It Cm MaxAuthTries
1015Specifies the maximum number of authentication attempts permitted per
1016connection.
1017Once the number of failures reaches half this value,
1018additional failures are logged.
1019The default is 6.
1020.It Cm MaxSessions
1021Specifies the maximum number of open sessions permitted per network connection.
1022The default is 10.
1023.It Cm MaxStartups
1024Specifies the maximum number of concurrent unauthenticated connections to the
1025SSH daemon.
1026Additional connections will be dropped until authentication succeeds or the
1027.Cm LoginGraceTime
1028expires for a connection.
Adam Langleyd0592972015-03-30 14:49:51 -07001029The default is 10:30:100.
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001030.Pp
1031Alternatively, random early drop can be enabled by specifying
1032the three colon separated values
1033.Dq start:rate:full
1034(e.g. "10:30:60").
1035.Xr sshd 8
1036will refuse connection attempts with a probability of
1037.Dq rate/100
1038(30%)
1039if there are currently
1040.Dq start
1041(10)
1042unauthenticated connections.
1043The probability increases linearly and all connection attempts
1044are refused if the number of unauthenticated connections reaches
1045.Dq full
1046(60).
1047.It Cm PasswordAuthentication
1048Specifies whether password authentication is allowed.
1049The default is
1050.Dq yes .
1051.It Cm PermitEmptyPasswords
1052When password authentication is allowed, it specifies whether the
1053server allows login to accounts with empty password strings.
1054The default is
1055.Dq no .
1056.It Cm PermitOpen
1057Specifies the destinations to which TCP port forwarding is permitted.
1058The forwarding specification must be one of the following forms:
1059.Pp
1060.Bl -item -offset indent -compact
1061.It
1062.Cm PermitOpen
1063.Sm off
1064.Ar host : port
1065.Sm on
1066.It
1067.Cm PermitOpen
1068.Sm off
1069.Ar IPv4_addr : port
1070.Sm on
1071.It
1072.Cm PermitOpen
1073.Sm off
1074.Ar \&[ IPv6_addr \&] : port
1075.Sm on
1076.El
1077.Pp
1078Multiple forwards may be specified by separating them with whitespace.
1079An argument of
1080.Dq any
1081can be used to remove all restrictions and permit any forwarding requests.
Adam Langleyd0592972015-03-30 14:49:51 -07001082An argument of
1083.Dq none
1084can be used to prohibit all forwarding requests.
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001085By default all port forwarding requests are permitted.
1086.It Cm PermitRootLogin
1087Specifies whether root can log in using
1088.Xr ssh 1 .
1089The argument must be
1090.Dq yes ,
1091.Dq without-password ,
1092.Dq forced-commands-only ,
1093or
1094.Dq no .
1095The default is
1096.Dq yes .
1097.Pp
1098If this option is set to
1099.Dq without-password ,
1100password authentication is disabled for root.
1101.Pp
1102If this option is set to
1103.Dq forced-commands-only ,
1104root login with public key authentication will be allowed,
1105but only if the
1106.Ar command
1107option has been specified
1108(which may be useful for taking remote backups even if root login is
1109normally not allowed).
1110All other authentication methods are disabled for root.
1111.Pp
1112If this option is set to
1113.Dq no ,
1114root is not allowed to log in.
1115.It Cm PermitTunnel
1116Specifies whether
1117.Xr tun 4
1118device forwarding is allowed.
1119The argument must be
1120.Dq yes ,
1121.Dq point-to-point
1122(layer 3),
1123.Dq ethernet
1124(layer 2), or
1125.Dq no .
1126Specifying
1127.Dq yes
1128permits both
1129.Dq point-to-point
1130and
1131.Dq ethernet .
1132The default is
1133.Dq no .
Adam Langleyd0592972015-03-30 14:49:51 -07001134.Pp
1135Independent of this setting, the permissions of the selected
1136.Xr tun 4
1137device must allow access to the user.
1138.It Cm PermitTTY
1139Specifies whether
1140.Xr pty 4
1141allocation is permitted.
1142The default is
1143.Dq yes .
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001144.It Cm PermitUserEnvironment
1145Specifies whether
1146.Pa ~/.ssh/environment
1147and
1148.Cm environment=
1149options in
1150.Pa ~/.ssh/authorized_keys
1151are processed by
1152.Xr sshd 8 .
1153The default is
1154.Dq no .
1155Enabling environment processing may enable users to bypass access
1156restrictions in some configurations using mechanisms such as
1157.Ev LD_PRELOAD .
Adam Langleyd0592972015-03-30 14:49:51 -07001158.It Cm PermitUserRC
1159Specifies whether any
1160.Pa ~/.ssh/rc
1161file is executed.
1162The default is
1163.Dq yes .
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001164.It Cm PidFile
1165Specifies the file that contains the process ID of the
1166SSH daemon.
1167The default is
1168.Pa /var/run/sshd.pid .
1169.It Cm Port
1170Specifies the port number that
1171.Xr sshd 8
1172listens on.
1173The default is 22.
1174Multiple options of this type are permitted.
1175See also
1176.Cm ListenAddress .
1177.It Cm PrintLastLog
1178Specifies whether
1179.Xr sshd 8
1180should print the date and time of the last user login when a user logs
1181in interactively.
1182The default is
1183.Dq yes .
1184.It Cm PrintMotd
1185Specifies whether
1186.Xr sshd 8
1187should print
1188.Pa /etc/motd
1189when a user logs in interactively.
1190(On some systems it is also printed by the shell,
1191.Pa /etc/profile ,
1192or equivalent.)
1193The default is
1194.Dq yes .
1195.It Cm Protocol
1196Specifies the protocol versions
1197.Xr sshd 8
1198supports.
1199The possible values are
1200.Sq 1
1201and
1202.Sq 2 .
1203Multiple versions must be comma-separated.
1204The default is
1205.Sq 2 .
1206Note that the order of the protocol list does not indicate preference,
1207because the client selects among multiple protocol versions offered
1208by the server.
1209Specifying
1210.Dq 2,1
1211is identical to
1212.Dq 1,2 .
Adam Langleyd0592972015-03-30 14:49:51 -07001213.It Cm PubkeyAcceptedKeyTypes
1214Specifies the key types that will be accepted for public key authentication
1215as a comma-separated pattern list.
1216The default
1217.Dq *
1218will allow all key types.
1219The
1220.Fl Q
1221option of
1222.Xr ssh 1
1223may be used to list supported key types.
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001224.It Cm PubkeyAuthentication
1225Specifies whether public key authentication is allowed.
1226The default is
1227.Dq yes .
1228Note that this option applies to protocol version 2 only.
Adam Langleyd0592972015-03-30 14:49:51 -07001229.It Cm RekeyLimit
1230Specifies the maximum amount of data that may be transmitted before the
1231session key is renegotiated, optionally followed a maximum amount of
1232time that may pass before the session key is renegotiated.
1233The first argument is specified in bytes and may have a suffix of
1234.Sq K ,
1235.Sq M ,
1236or
1237.Sq G
1238to indicate Kilobytes, Megabytes, or Gigabytes, respectively.
1239The default is between
1240.Sq 1G
1241and
1242.Sq 4G ,
1243depending on the cipher.
1244The optional second value is specified in seconds and may use any of the
1245units documented in the
1246.Sx TIME FORMATS
1247section.
1248The default value for
1249.Cm RekeyLimit
1250is
1251.Dq default none ,
1252which means that rekeying is performed after the cipher's default amount
1253of data has been sent or received and no time based rekeying is done.
1254This option applies to protocol version 2 only.
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001255.It Cm RevokedKeys
Adam Langleyd0592972015-03-30 14:49:51 -07001256Specifies revoked public keys.
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001257Keys listed in this file will be refused for public key authentication.
1258Note that if this file is not readable, then public key authentication will
1259be refused for all users.
Adam Langleyd0592972015-03-30 14:49:51 -07001260Keys may be specified as a text file, listing one public key per line, or as
1261an OpenSSH Key Revocation List (KRL) as generated by
1262.Xr ssh-keygen 1 .
1263For more information on KRLs, see the KEY REVOCATION LISTS section in
1264.Xr ssh-keygen 1 .
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001265.It Cm RhostsRSAAuthentication
1266Specifies whether rhosts or /etc/hosts.equiv authentication together
1267with successful RSA host authentication is allowed.
1268The default is
1269.Dq no .
1270This option applies to protocol version 1 only.
1271.It Cm RSAAuthentication
1272Specifies whether pure RSA authentication is allowed.
1273The default is
1274.Dq yes .
1275This option applies to protocol version 1 only.
1276.It Cm ServerKeyBits
1277Defines the number of bits in the ephemeral protocol version 1 server key.
1278The minimum value is 512, and the default is 1024.
Adam Langleyd0592972015-03-30 14:49:51 -07001279.It Cm StreamLocalBindMask
1280Sets the octal file creation mode mask
1281.Pq umask
1282used when creating a Unix-domain socket file for local or remote
1283port forwarding.
1284This option is only used for port forwarding to a Unix-domain socket file.
1285.Pp
1286The default value is 0177, which creates a Unix-domain socket file that is
1287readable and writable only by the owner.
1288Note that not all operating systems honor the file mode on Unix-domain
1289socket files.
1290.It Cm StreamLocalBindUnlink
1291Specifies whether to remove an existing Unix-domain socket file for local
1292or remote port forwarding before creating a new one.
1293If the socket file already exists and
1294.Cm StreamLocalBindUnlink
1295is not enabled,
1296.Nm sshd
1297will be unable to forward the port to the Unix-domain socket file.
1298This option is only used for port forwarding to a Unix-domain socket file.
1299.Pp
1300The argument must be
1301.Dq yes
1302or
1303.Dq no .
1304The default is
1305.Dq no .
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001306.It Cm StrictModes
1307Specifies whether
1308.Xr sshd 8
1309should check file modes and ownership of the
1310user's files and home directory before accepting login.
1311This is normally desirable because novices sometimes accidentally leave their
1312directory or files world-writable.
1313The default is
1314.Dq yes .
1315Note that this does not apply to
1316.Cm ChrootDirectory ,
1317whose permissions and ownership are checked unconditionally.
1318.It Cm Subsystem
1319Configures an external subsystem (e.g. file transfer daemon).
1320Arguments should be a subsystem name and a command (with optional arguments)
1321to execute upon subsystem request.
1322.Pp
1323The command
1324.Xr sftp-server 8
1325implements the
1326.Dq sftp
1327file transfer subsystem.
1328.Pp
1329Alternately the name
1330.Dq internal-sftp
1331implements an in-process
1332.Dq sftp
1333server.
1334This may simplify configurations using
1335.Cm ChrootDirectory
1336to force a different filesystem root on clients.
1337.Pp
1338By default no subsystems are defined.
1339Note that this option applies to protocol version 2 only.
1340.It Cm SyslogFacility
1341Gives the facility code that is used when logging messages from
1342.Xr sshd 8 .
1343The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
1344LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
1345The default is AUTH.
1346.It Cm TCPKeepAlive
1347Specifies whether the system should send TCP keepalive messages to the
1348other side.
1349If they are sent, death of the connection or crash of one
1350of the machines will be properly noticed.
1351However, this means that
1352connections will die if the route is down temporarily, and some people
1353find it annoying.
1354On the other hand, if TCP keepalives are not sent,
1355sessions may hang indefinitely on the server, leaving
1356.Dq ghost
1357users and consuming server resources.
1358.Pp
1359The default is
1360.Dq yes
1361(to send TCP keepalive messages), and the server will notice
1362if the network goes down or the client host crashes.
1363This avoids infinitely hanging sessions.
1364.Pp
1365To disable TCP keepalive messages, the value should be set to
1366.Dq no .
1367.It Cm TrustedUserCAKeys
1368Specifies a file containing public keys of certificate authorities that are
1369trusted to sign user certificates for authentication.
1370Keys are listed one per line; empty lines and comments starting with
1371.Ql #
1372are allowed.
1373If a certificate is presented for authentication and has its signing CA key
1374listed in this file, then it may be used for authentication for any user
1375listed in the certificate's principals list.
1376Note that certificates that lack a list of principals will not be permitted
1377for authentication using
1378.Cm TrustedUserCAKeys .
Adam Langleyd0592972015-03-30 14:49:51 -07001379For more details on certificates, see the CERTIFICATES section in
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001380.Xr ssh-keygen 1 .
1381.It Cm UseDNS
1382Specifies whether
1383.Xr sshd 8
1384should look up the remote host name and check that
1385the resolved host name for the remote IP address maps back to the
1386very same IP address.
1387The default is
Adam Langleyd0592972015-03-30 14:49:51 -07001388.Dq no .
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001389.It Cm UseLogin
1390Specifies whether
1391.Xr login 1
1392is used for interactive login sessions.
1393The default is
1394.Dq no .
1395Note that
1396.Xr login 1
1397is never used for remote command execution.
1398Note also, that if this is enabled,
1399.Cm X11Forwarding
1400will be disabled because
1401.Xr login 1
1402does not know how to handle
1403.Xr xauth 1
1404cookies.
1405If
1406.Cm UsePrivilegeSeparation
1407is specified, it will be disabled after authentication.
1408.It Cm UsePAM
1409Enables the Pluggable Authentication Module interface.
1410If set to
1411.Dq yes
1412this will enable PAM authentication using
1413.Cm ChallengeResponseAuthentication
1414and
1415.Cm PasswordAuthentication
1416in addition to PAM account and session module processing for all
1417authentication types.
1418.Pp
1419Because PAM challenge-response authentication usually serves an equivalent
1420role to password authentication, you should disable either
1421.Cm PasswordAuthentication
1422or
1423.Cm ChallengeResponseAuthentication.
1424.Pp
1425If
1426.Cm UsePAM
1427is enabled, you will not be able to run
1428.Xr sshd 8
1429as a non-root user.
1430The default is
1431.Dq no .
1432.It Cm UsePrivilegeSeparation
1433Specifies whether
1434.Xr sshd 8
1435separates privileges by creating an unprivileged child process
1436to deal with incoming network traffic.
1437After successful authentication, another process will be created that has
1438the privilege of the authenticated user.
1439The goal of privilege separation is to prevent privilege
1440escalation by containing any corruption within the unprivileged processes.
1441The default is
1442.Dq yes .
1443If
1444.Cm UsePrivilegeSeparation
1445is set to
1446.Dq sandbox
1447then the pre-authentication unprivileged process is subject to additional
1448restrictions.
Adam Langleyd0592972015-03-30 14:49:51 -07001449.It Cm VersionAddendum
1450Optionally specifies additional text to append to the SSH protocol banner
1451sent by the server upon connection.
1452The default is
1453.Dq none .
Greg Hartmanbd77cf72015-02-25 13:21:06 -08001454.It Cm X11DisplayOffset
1455Specifies the first display number available for
1456.Xr sshd 8 Ns 's
1457X11 forwarding.
1458This prevents sshd from interfering with real X11 servers.
1459The default is 10.
1460.It Cm X11Forwarding
1461Specifies whether X11 forwarding is permitted.
1462The argument must be
1463.Dq yes
1464or
1465.Dq no .
1466The default is
1467.Dq no .
1468.Pp
1469When X11 forwarding is enabled, there may be additional exposure to
1470the server and to client displays if the
1471.Xr sshd 8
1472proxy display is configured to listen on the wildcard address (see
1473.Cm X11UseLocalhost
1474below), though this is not the default.
1475Additionally, the authentication spoofing and authentication data
1476verification and substitution occur on the client side.
1477The security risk of using X11 forwarding is that the client's X11
1478display server may be exposed to attack when the SSH client requests
1479forwarding (see the warnings for
1480.Cm ForwardX11
1481in
1482.Xr ssh_config 5 ) .
1483A system administrator may have a stance in which they want to
1484protect clients that may expose themselves to attack by unwittingly
1485requesting X11 forwarding, which can warrant a
1486.Dq no
1487setting.
1488.Pp
1489Note that disabling X11 forwarding does not prevent users from
1490forwarding X11 traffic, as users can always install their own forwarders.
1491X11 forwarding is automatically disabled if
1492.Cm UseLogin
1493is enabled.
1494.It Cm X11UseLocalhost
1495Specifies whether
1496.Xr sshd 8
1497should bind the X11 forwarding server to the loopback address or to
1498the wildcard address.
1499By default,
1500sshd binds the forwarding server to the loopback address and sets the
1501hostname part of the
1502.Ev DISPLAY
1503environment variable to
1504.Dq localhost .
1505This prevents remote hosts from connecting to the proxy display.
1506However, some older X11 clients may not function with this
1507configuration.
1508.Cm X11UseLocalhost
1509may be set to
1510.Dq no
1511to specify that the forwarding server should be bound to the wildcard
1512address.
1513The argument must be
1514.Dq yes
1515or
1516.Dq no .
1517The default is
1518.Dq yes .
1519.It Cm XAuthLocation
1520Specifies the full pathname of the
1521.Xr xauth 1
1522program.
1523The default is
1524.Pa /usr/X11R6/bin/xauth .
1525.El
1526.Sh TIME FORMATS
1527.Xr sshd 8
1528command-line arguments and configuration file options that specify time
1529may be expressed using a sequence of the form:
1530.Sm off
1531.Ar time Op Ar qualifier ,
1532.Sm on
1533where
1534.Ar time
1535is a positive integer value and
1536.Ar qualifier
1537is one of the following:
1538.Pp
1539.Bl -tag -width Ds -compact -offset indent
1540.It Aq Cm none
1541seconds
1542.It Cm s | Cm S
1543seconds
1544.It Cm m | Cm M
1545minutes
1546.It Cm h | Cm H
1547hours
1548.It Cm d | Cm D
1549days
1550.It Cm w | Cm W
1551weeks
1552.El
1553.Pp
1554Each member of the sequence is added together to calculate
1555the total time value.
1556.Pp
1557Time format examples:
1558.Pp
1559.Bl -tag -width Ds -compact -offset indent
1560.It 600
1561600 seconds (10 minutes)
1562.It 10m
156310 minutes
1564.It 1h30m
15651 hour 30 minutes (90 minutes)
1566.El
1567.Sh FILES
1568.Bl -tag -width Ds
1569.It Pa /etc/ssh/sshd_config
1570Contains configuration data for
1571.Xr sshd 8 .
1572This file should be writable by root only, but it is recommended
1573(though not necessary) that it be world-readable.
1574.El
1575.Sh SEE ALSO
1576.Xr sshd 8
1577.Sh AUTHORS
1578OpenSSH is a derivative of the original and free
1579ssh 1.2.12 release by Tatu Ylonen.
1580Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
1581Theo de Raadt and Dug Song
1582removed many bugs, re-added newer features and
1583created OpenSSH.
1584Markus Friedl contributed the support for SSH
1585protocol versions 1.5 and 2.0.
1586Niels Provos and Markus Friedl contributed support
1587for privilege separation.