]> andersk Git - gssapi-openssh.git/blame - openssh/sshd_config.5
stash gssapi credential storage file name for GSI so we can cleanup
[gssapi-openssh.git] / openssh / sshd_config.5
CommitLineData
884dc78b 1.\" -*- nroff -*-
2.\"
3.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
5.\" All rights reserved
6.\"
7.\" As far as I am concerned, the code I have written for this software
8.\" can be used freely for any purpose. Any derived versions of this
9.\" software must be clearly marked as such, and if the derived work is
10.\" incompatible with the protocol description in the RFC file, it must be
11.\" called by a name other than "ssh" or "Secure Shell".
12.\"
13.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved.
14.\" Copyright (c) 1999 Aaron Campbell. All rights reserved.
15.\" Copyright (c) 1999 Theo de Raadt. All rights reserved.
16.\"
17.\" Redistribution and use in source and binary forms, with or without
18.\" modification, are permitted provided that the following conditions
19.\" are met:
20.\" 1. Redistributions of source code must retain the above copyright
21.\" notice, this list of conditions and the following disclaimer.
22.\" 2. Redistributions in binary form must reproduce the above copyright
23.\" notice, this list of conditions and the following disclaimer in the
24.\" documentation and/or other materials provided with the distribution.
25.\"
26.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
27.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
29.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
30.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
31.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\"
276b07a3 37.\" $OpenBSD: sshd_config.5,v 1.4 2002/06/22 16:45:29 stevesk Exp $
884dc78b 38.Dd September 25, 1999
39.Dt SSHD_CONFIG 5
40.Os
41.Sh NAME
42.Nm sshd_config
43.Nd OpenSSH SSH daemon configuration file
44.Sh SYNOPSIS
45.Bl -tag -width Ds -compact
46.It Pa /etc/ssh/sshd_config
47.El
48.Sh DESCRIPTION
49.Nm sshd
50reads configuration data from
51.Pa /etc/ssh/sshd_config
52(or the file specified with
53.Fl f
54on the command line).
55The file contains keyword-argument pairs, one per line.
56Lines starting with
57.Ql #
58and empty lines are interpreted as comments.
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 AFSTokenPassing
65Specifies whether an AFS token may be forwarded to the server.
66Default is
67.Dq no .
68.It Cm AllowGroups
69This keyword can be followed by a list of group name patterns, separated
70by spaces.
71If specified, login is allowed only for users whose primary
72group or supplementary group list matches one of the patterns.
73.Ql \&*
74and
75.Ql ?
76can be used as
77wildcards in the patterns.
78Only group names are valid; a numerical group ID is not recognized.
79By default, login is allowed for all groups.
80.Pp
81.It Cm AllowTcpForwarding
82Specifies whether TCP forwarding is permitted.
83The default is
84.Dq yes .
85Note that disabling TCP forwarding does not improve security unless
86users are also denied shell access, as they can always install their
87own forwarders.
88.Pp
89.It Cm AllowUsers
90This keyword can be followed by a list of user name patterns, separated
91by spaces.
92If specified, login is allowed only for users names that
93match one of the patterns.
94.Ql \&*
95and
96.Ql ?
97can be used as
98wildcards in the patterns.
99Only user names are valid; a numerical user ID is not recognized.
100By default, login is allowed for all users.
101If the pattern takes the form USER@HOST then USER and HOST
102are separately checked, restricting logins to particular
103users from particular hosts.
104.Pp
105.It Cm AuthorizedKeysFile
106Specifies the file that contains the public keys that can be used
107for user authentication.
108.Cm AuthorizedKeysFile
109may contain tokens of the form %T which are substituted during connection
110set-up. The following tokens are defined: %% is replaced by a literal '%',
111%h is replaced by the home directory of the user being authenticated and
112%u is replaced by the username of that user.
113After expansion,
114.Cm AuthorizedKeysFile
115is taken to be an absolute path or one relative to the user's home
116directory.
117The default is
118.Dq .ssh/authorized_keys .
119.It Cm Banner
120In some jurisdictions, sending a warning message before authentication
121may be relevant for getting legal protection.
122The contents of the specified file are sent to the remote user before
123authentication is allowed.
124This option is only available for protocol version 2.
125By default, no banner is displayed.
126.Pp
127.It Cm ChallengeResponseAuthentication
128Specifies whether challenge response authentication is allowed.
129All authentication styles from
130.Xr login.conf 5
131are supported.
132The default is
133.Dq yes .
134.It Cm Ciphers
135Specifies the ciphers allowed for protocol version 2.
136Multiple ciphers must be comma-separated.
137The default is
138.Pp
139.Bd -literal
140 ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,
141 aes192-cbc,aes256-cbc''
142.Ed
143.It Cm ClientAliveInterval
144Sets a timeout interval in seconds after which if no data has been received
145from the client,
146.Nm sshd
147will send a message through the encrypted
148channel to request a response from the client.
149The default
150is 0, indicating that these messages will not be sent to the client.
151This option applies to protocol version 2 only.
152.It Cm ClientAliveCountMax
153Sets the number of client alive messages (see above) which may be
154sent without
155.Nm sshd
156receiving any messages back from the client. If this threshold is
157reached while client alive messages are being sent,
158.Nm sshd
159will disconnect the client, terminating the session. It is important
160to note that the use of client alive messages is very different from
161.Cm KeepAlive
162(below). The client alive messages are sent through the
163encrypted channel and therefore will not be spoofable. The TCP keepalive
164option enabled by
165.Cm KeepAlive
166is spoofable. The client alive mechanism is valuable when the client or
167server depend on knowing when a connection has become inactive.
168.Pp
169The default value is 3. If
170.Cm ClientAliveInterval
171(above) is set to 15, and
172.Cm ClientAliveCountMax
173is left at the default, unresponsive ssh clients
174will be disconnected after approximately 45 seconds.
175.It Cm Compression
176Specifies whether compression is allowed.
177The argument must be
178.Dq yes
179or
180.Dq no .
181The default is
182.Dq yes .
183.It Cm DenyGroups
184This keyword can be followed by a list of group name patterns, separated
185by spaces.
186Login is disallowed for users whose primary group or supplementary
187group list matches one of the patterns.
188.Ql \&*
189and
190.Ql ?
191can be used as
192wildcards in the patterns.
193Only group names are valid; a numerical group ID is not recognized.
194By default, login is allowed for all groups.
195.Pp
196.It Cm DenyUsers
197This keyword can be followed by a list of user name patterns, separated
198by spaces.
199Login is disallowed for user names that match one of the patterns.
200.Ql \&*
201and
202.Ql ?
203can be used as wildcards in the patterns.
204Only user names are valid; a numerical user ID is not recognized.
205By default, login is allowed for all users.
206If the pattern takes the form USER@HOST then USER and HOST
207are separately checked, restricting logins to particular
208users from particular hosts.
209.It Cm GatewayPorts
210Specifies whether remote hosts are allowed to connect to ports
211forwarded for the client.
212By default,
213.Nm sshd
214binds remote port forwardings to the loopback address. This
215prevents other remote hosts from connecting to forwarded ports.
216.Cm GatewayPorts
217can be used to specify that
218.Nm sshd
219should bind remote port forwardings to the wildcard address,
220thus allowing remote hosts to connect to forwarded ports.
221The argument must be
222.Dq yes
223or
224.Dq no .
225The default is
226.Dq no .
227.It Cm HostbasedAuthentication
228Specifies whether rhosts or /etc/hosts.equiv authentication together
229with successful public key client host authentication is allowed
230(hostbased authentication).
231This option is similar to
232.Cm RhostsRSAAuthentication
233and applies to protocol version 2 only.
234The default is
235.Dq no .
44a053a3 236.It Cm GssapiAuthentication
237Specifies whether authentication based on GSSAPI may be used, either using
238the result of a successful key exchange, or using GSSAPI user
239authentication.
240The default is
241.Dq yes .
242.It Cm GssapiKeyExchange
243Specifies whether key exchange based on GSSAPI may be used. When using
244GSSAPI key exchange the server need not have a host key.
245The default is
246.Dq yes .
247.It Cm GssapiUseSessionCredCache
248Specifies whether a unique credentials cache name should be generated per
249session for storing delegated credentials.
250The default is
251.Dq yes .
884dc78b 252.It Cm HostKey
253Specifies a file containing a private host key
254used by SSH.
255The default is
256.Pa /etc/ssh/ssh_host_key
257for protocol version 1, and
258.Pa /etc/ssh/ssh_host_rsa_key
259and
260.Pa /etc/ssh/ssh_host_dsa_key
261for protocol version 2.
262Note that
263.Nm sshd
264will refuse to use a file if it is group/world-accessible.
265It is possible to have multiple host key files.
266.Dq rsa1
267keys are used for version 1 and
268.Dq dsa
269or
270.Dq rsa
271are used for version 2 of the SSH protocol.
272.It Cm IgnoreRhosts
273Specifies that
274.Pa .rhosts
275and
276.Pa .shosts
277files will not be used in
278.Cm RhostsAuthentication ,
279.Cm RhostsRSAAuthentication
280or
281.Cm HostbasedAuthentication .
282.Pp
283.Pa /etc/hosts.equiv
284and
285.Pa /etc/shosts.equiv
286are still used.
287The default is
288.Dq yes .
289.It Cm IgnoreUserKnownHosts
290Specifies whether
291.Nm sshd
292should ignore the user's
293.Pa $HOME/.ssh/known_hosts
294during
295.Cm RhostsRSAAuthentication
296or
297.Cm HostbasedAuthentication .
298The default is
299.Dq no .
300.It Cm KeepAlive
301Specifies whether the system should send TCP keepalive messages to the
302other side.
303If they are sent, death of the connection or crash of one
304of the machines will be properly noticed.
305However, this means that
306connections will die if the route is down temporarily, and some people
307find it annoying.
308On the other hand, if keepalives are not sent,
309sessions may hang indefinitely on the server, leaving
310.Dq ghost
311users and consuming server resources.
312.Pp
313The default is
314.Dq yes
315(to send keepalives), and the server will notice
316if the network goes down or the client host crashes.
317This avoids infinitely hanging sessions.
318.Pp
319To disable keepalives, the value should be set to
320.Dq no .
321.It Cm KerberosAuthentication
322Specifies whether Kerberos authentication is allowed.
323This can be in the form of a Kerberos ticket, or if
884dc78b 324.Cm PasswordAuthentication
325is yes, the password provided by the user will be validated through
326the Kerberos KDC.
327To use this option, the server needs a
328Kerberos servtab which allows the verification of the KDC's identity.
329Default is
330.Dq no .
331.It Cm KerberosOrLocalPasswd
332If set then if password authentication through Kerberos fails then
333the password will be validated via any additional local mechanism
334such as
335.Pa /etc/passwd .
336Default is
337.Dq yes .
338.It Cm KerberosTgtPassing
339Specifies whether a Kerberos TGT may be forwarded to the server.
340Default is
341.Dq no ,
342as this only works when the Kerberos KDC is actually an AFS kaserver.
343.It Cm KerberosTicketCleanup
344Specifies whether to automatically destroy the user's ticket cache
345file on logout.
346Default is
347.Dq yes .
348.It Cm KeyRegenerationInterval
349In protocol version 1, the ephemeral server key is automatically regenerated
350after this many seconds (if it has been used).
351The purpose of regeneration is to prevent
352decrypting captured sessions by later breaking into the machine and
353stealing the keys.
354The key is never stored anywhere.
355If the value is 0, the key is never regenerated.
356The default is 3600 (seconds).
357.It Cm ListenAddress
358Specifies the local addresses
359.Nm sshd
360should listen on.
361The following forms may be used:
362.Pp
363.Bl -item -offset indent -compact
364.It
365.Cm ListenAddress
366.Sm off
367.Ar host No | Ar IPv4_addr No | Ar IPv6_addr
368.Sm on
369.It
370.Cm ListenAddress
371.Sm off
372.Ar host No | Ar IPv4_addr No : Ar port
373.Sm on
374.It
375.Cm ListenAddress
376.Sm off
377.Oo
378.Ar host No | Ar IPv6_addr Oc : Ar port
379.Sm on
380.El
381.Pp
382If
383.Ar port
384is not specified,
385.Nm sshd
386will listen on the address and all prior
387.Cm Port
388options specified. The default is to listen on all local
389addresses. Multiple
390.Cm ListenAddress
391options are permitted. Additionally, any
392.Cm Port
393options must precede this option for non port qualified addresses.
394.It Cm LoginGraceTime
395The server disconnects after this time if the user has not
396successfully logged in.
397If the value is 0, there is no time limit.
398The default is 600 (seconds).
399.It Cm LogLevel
400Gives the verbosity level that is used when logging messages from
401.Nm sshd .
402The possible values are:
403QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3.
404The default is INFO. DEBUG and DEBUG1 are equivalent. DEBUG2
405and DEBUG3 each specify higher levels of debugging output.
406Logging with a DEBUG level violates the privacy of users
407and is not recommended.
408.It Cm MACs
409Specifies the available MAC (message authentication code) algorithms.
410The MAC algorithm is used in protocol version 2
411for data integrity protection.
412Multiple algorithms must be comma-separated.
413The default is
414.Dq hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 .
415.It Cm MaxStartups
416Specifies the maximum number of concurrent unauthenticated connections to the
417.Nm sshd
418daemon.
419Additional connections will be dropped until authentication succeeds or the
420.Cm LoginGraceTime
421expires for a connection.
422The default is 10.
423.Pp
424Alternatively, random early drop can be enabled by specifying
425the three colon separated values
426.Dq start:rate:full
427(e.g., "10:30:60").
428.Nm sshd
429will refuse connection attempts with a probability of
430.Dq rate/100
431(30%)
432if there are currently
433.Dq start
434(10)
435unauthenticated connections.
436The probability increases linearly and all connection attempts
437are refused if the number of unauthenticated connections reaches
438.Dq full
439(60).
276b07a3 440.It Cm PAMAuthenticationViaKbdInt
441Specifies whether PAM challenge response authentication is allowed. This
442allows the use of most PAM challenge response authentication modules, but
443it will allow password authentication regardless of whether
444.Cm PasswordAuthentication
445is enabled.
884dc78b 446.It Cm PasswordAuthentication
447Specifies whether password authentication is allowed.
448The default is
449.Dq yes .
450.It Cm PermitEmptyPasswords
451When password authentication is allowed, it specifies whether the
452server allows login to accounts with empty password strings.
453The default is
454.Dq no .
455.It Cm PermitRootLogin
456Specifies whether root can login using
457.Xr ssh 1 .
458The argument must be
459.Dq yes ,
460.Dq without-password ,
461.Dq forced-commands-only
462or
463.Dq no .
464The default is
465.Dq yes .
466.Pp
467If this option is set to
468.Dq without-password
469password authentication is disabled for root.
470.Pp
471If this option is set to
472.Dq forced-commands-only
473root login with public key authentication will be allowed,
474but only if the
475.Ar command
476option has been specified
477(which may be useful for taking remote backups even if root login is
478normally not allowed). All other authentication methods are disabled
479for root.
480.Pp
481If this option is set to
482.Dq no
483root is not allowed to login.
484.It Cm PidFile
276b07a3 485Specifies the file that contains the process ID of the
884dc78b 486.Nm sshd
487daemon.
488The default is
489.Pa /var/run/sshd.pid .
490.It Cm Port
491Specifies the port number that
492.Nm sshd
493listens on.
494The default is 22.
495Multiple options of this type are permitted.
496See also
497.Cm ListenAddress .
498.It Cm PrintLastLog
499Specifies whether
500.Nm sshd
501should print the date and time when the user last logged in.
502The default is
503.Dq yes .
504.It Cm PrintMotd
505Specifies whether
506.Nm sshd
507should print
508.Pa /etc/motd
509when a user logs in interactively.
510(On some systems it is also printed by the shell,
511.Pa /etc/profile ,
512or equivalent.)
513The default is
514.Dq yes .
515.It Cm Protocol
516Specifies the protocol versions
517.Nm sshd
518should support.
519The possible values are
520.Dq 1
521and
522.Dq 2 .
523Multiple versions must be comma-separated.
524The default is
525.Dq 2,1 .
526.It Cm PubkeyAuthentication
527Specifies whether public key authentication is allowed.
528The default is
529.Dq yes .
530Note that this option applies to protocol version 2 only.
531.It Cm RhostsAuthentication
532Specifies whether authentication using rhosts or /etc/hosts.equiv
533files is sufficient.
534Normally, this method should not be permitted because it is insecure.
535.Cm RhostsRSAAuthentication
536should be used
537instead, because it performs RSA-based host authentication in addition
538to normal rhosts or /etc/hosts.equiv authentication.
539The default is
540.Dq no .
541This option applies to protocol version 1 only.
542.It Cm RhostsRSAAuthentication
543Specifies whether rhosts or /etc/hosts.equiv authentication together
544with successful RSA host authentication is allowed.
545The default is
546.Dq no .
547This option applies to protocol version 1 only.
548.It Cm RSAAuthentication
549Specifies whether pure RSA authentication is allowed.
550The default is
551.Dq yes .
552This option applies to protocol version 1 only.
553.It Cm ServerKeyBits
554Defines the number of bits in the ephemeral protocol version 1 server key.
555The minimum value is 512, and the default is 768.
556.It Cm StrictModes
557Specifies whether
558.Nm sshd
559should check file modes and ownership of the
560user's files and home directory before accepting login.
561This is normally desirable because novices sometimes accidentally leave their
562directory or files world-writable.
563The default is
564.Dq yes .
565.It Cm Subsystem
566Configures an external subsystem (e.g., file transfer daemon).
567Arguments should be a subsystem name and a command to execute upon subsystem
568request.
569The command
570.Xr sftp-server 8
571implements the
572.Dq sftp
573file transfer subsystem.
574By default no subsystems are defined.
575Note that this option applies to protocol version 2 only.
576.It Cm SyslogFacility
577Gives the facility code that is used when logging messages from
578.Nm sshd .
579The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
580LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
581The default is AUTH.
582.It Cm UseLogin
583Specifies whether
584.Xr login 1
585is used for interactive login sessions.
586The default is
587.Dq no .
588Note that
589.Xr login 1
590is never used for remote command execution.
591Note also, that if this is enabled,
592.Cm X11Forwarding
593will be disabled because
594.Xr login 1
595does not know how to handle
596.Xr xauth 1
597cookies. If
598.Cm UsePrivilegeSeparation
599is specified, it will be disabled after authentication.
600.It Cm UsePrivilegeSeparation
601Specifies whether
602.Nm sshd
603separates privileges by creating an unprivileged child process
604to deal with incoming network traffic. After successful authentication,
605another process will be created that has the privilege of the authenticated
606user. The goal of privilege separation is to prevent privilege
607escalation by containing any corruption within the unprivileged processes.
608The default is
609.Dq yes .
610.It Cm VerifyReverseMapping
611Specifies whether
612.Nm sshd
613should try to verify the remote host name and check that
614the resolved host name for the remote IP address maps back to the
615very same IP address.
616The default is
617.Dq no .
618.It Cm X11DisplayOffset
619Specifies the first display number available for
620.Nm sshd Ns 's
621X11 forwarding.
622This prevents
623.Nm sshd
624from interfering with real X11 servers.
625The default is 10.
626.It Cm X11Forwarding
627Specifies whether X11 forwarding is permitted.
628The default is
629.Dq no .
630Note that disabling X11 forwarding does not improve security in any
631way, as users can always install their own forwarders.
632X11 forwarding is automatically disabled if
633.Cm UseLogin
634is enabled.
635.It Cm X11UseLocalhost
636Specifies whether
637.Nm sshd
638should bind the X11 forwarding server to the loopback address or to
639the wildcard address. By default,
640.Nm sshd
641binds the forwarding server to the loopback address and sets the
642hostname part of the
643.Ev DISPLAY
644environment variable to
645.Dq localhost .
646This prevents remote hosts from connecting to the fake display.
647However, some older X11 clients may not function with this
648configuration.
649.Cm X11UseLocalhost
650may be set to
651.Dq no
652to specify that the forwarding server should be bound to the wildcard
653address.
654The argument must be
655.Dq yes
656or
657.Dq no .
658The default is
659.Dq yes .
660.It Cm XAuthLocation
661Specifies the location of the
662.Xr xauth 1
663program.
664The default is
665.Pa /usr/X11R6/bin/xauth .
666.El
667.Ss Time Formats
668.Pp
669.Nm sshd
670command-line arguments and configuration file options that specify time
671may be expressed using a sequence of the form:
672.Sm off
673.Ar time Oo Ar qualifier Oc ,
674.Sm on
675where
676.Ar time
677is a positive integer value and
678.Ar qualifier
679is one of the following:
680.Pp
681.Bl -tag -width Ds -compact -offset indent
682.It Cm <none>
683seconds
684.It Cm s | Cm S
685seconds
686.It Cm m | Cm M
687minutes
688.It Cm h | Cm H
689hours
690.It Cm d | Cm D
691days
692.It Cm w | Cm W
693weeks
694.El
695.Pp
696Each member of the sequence is added together to calculate
697the total time value.
698.Pp
699Time format examples:
700.Pp
701.Bl -tag -width Ds -compact -offset indent
702.It 600
703600 seconds (10 minutes)
704.It 10m
70510 minutes
706.It 1h30m
7071 hour 30 minutes (90 minutes)
708.El
709.Sh FILES
710.Bl -tag -width Ds
711.It Pa /etc/ssh/sshd_config
712Contains configuration data for
713.Nm sshd .
714This file should be writable by root only, but it is recommended
715(though not necessary) that it be world-readable.
716.El
717.Sh AUTHORS
718OpenSSH is a derivative of the original and free
719ssh 1.2.12 release by Tatu Ylonen.
720Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
721Theo de Raadt and Dug Song
722removed many bugs, re-added newer features and
723created OpenSSH.
724Markus Friedl contributed the support for SSH
725protocol versions 1.5 and 2.0.
726Niels Provos and Markus Friedl contributed support
727for privilege separation.
728.Sh SEE ALSO
729.Xr sshd 8
This page took 0.82884 seconds and 5 git commands to generate.