File Formats sshd_config(4)
NAME
sshd_config - sshd configuration file
SYNOPSIS
/etc/ssh/sshd_config
DESCRIPTION
The sshd(1M) daemon reads configuration data from/etc/ssh/sshd_config (or the file specified with sshd -f on
the command line). The file contains keyword-value pairs,
one per line. A line starting with a hash mark (#) and empty
lines are interpreted as comments.The sshd_config file supports the following keywords. Unless
otherwise noted, keywords and their arguments are case-
insensitive. AllowGroups This keyword can be followed by a number of group names, separated by spaces. If specified, login is allowed only for users whose primary group or supplementary grouplist matches one of the patterns. Asterisk (*) and ques-
tion mark (?) can be used as wildcards in the patterns. Only group names are valid; a numerical group ID is not recognized. By default, login is allowed regardless of the primary group. AllowTcpForwarding Specifies whether TCP forwarding is permitted. The default is yes. Disabling TCP forwarding does not improve security unless users are also denied shell access, as they can always install their own forwarders. AllowUsers This keyword can be followed by a number of user names, separated by spaces. If specified, login is allowed only for user names that match one of the patterns. Asterisk (*) and question mark (?) can be used as wildcards in the patterns. Only user names are valid; a numerical user ID is not recognized. By default login is allowed regardless of the user name. If a specified pattern takes the form user@host then user and host are checked separately, restricting logins to particular users from particular hosts.SunOS 5.11 Last change: 35 Aug 2010 1
File Formats sshd_config(4)
AuthorizedKeysFile Specifies the file that contains the public keys that can be used for user authentication. AuthorizedKeysFilecan contain tokens of the form %T, which are substituted
during connection set-up. The following tokens are
defined: %% is replaced by a literal %, %h is replaced
by the home directory of the user being authenticatedand %u is replaced by the username of that user. After
expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user's home directory. Thedefault is .ssh/authorized_keys.
Banner In some jurisdictions, sending a warning message beforeauthentication can be relevant for getting legal protec-
tion. The contents of the specified file are sent to the remote user before authentication is allowed. This option is only available for protocol version 2. By default, no banner is displayed. ChrootDirectory Specifies a path to chroot(2) to after authentication.This path, and all its components, must be root-owned
directories that are not writable by any other user or group. The server always tries to change to the user's home directory locally under the chrooted environment but afailure to do so is not considered an error. In addi-
tion, the path might contain the following tokens that are expanded at runtime once the connecting user hasbeen authenticated: %% is replaced by a literal %, %h is
replaced by the home directory of the user being authen-
ticated, and %u is replaced by the username of that
user. The ChrootDirectory must contain the necessary files and directories to support the user's session. For an interactive SSH session this requires at least a user's shell, shared libraries needed by the shell, dynamic linker, and possibly basic /dev nodes such as null,zero, stdin, stdout, stderr, random, and tty. Addition-
ally, terminal databases are needed for screen oriented applications. For file transfer sessions using sftp with the SSH protocol version 2, no additional configurationof the environment is necessary if the in-process sftp
server is used. See Subsystem for details.SunOS 5.11 Last change: 35 Aug 2010 2
File Formats sshd_config(4)
The default is not to chroot(2). Ciphers Specifies the ciphers allowed for protocol version 2.Cipher ordering on the server side is not relevant. Mul-
tiple ciphers must be comma separated.Valid ciphers are: aes128-ctr, aes192-ctr, aes256-ctr,
aes128-cbc, aes192-cbc, aes256-cbc, arcfour, arcfour128,
arcfour256, 3des-cbc, and blowfish-cbc.
The default cipher list is:aes128-ctr,aes192-ctr,aes256-ctr,arcfour128,
arcfour256,arcfour Using CBC modes on the server side is not recommended due to potential security issues in connection with the SSH protocol version 2. ClientAliveCountMaxSets the number of client alive messages, (see Clien-
tAliveInterval), that can be sent without sshd receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd disconnects the client, terminating the session. The use of client alive messages is very different from KeepAlive. The client alive messages are sent through the encrypted channel and therefore are not spoofable.The TCP keepalive option enabled by KeepAlive is spoofa-
ble. The client alive mechanism is valuable when a client or server depend on knowing when a connection has become inactive. The default value is 3. If ClientAliveInterval is set to 15, and ClientAliveCountMax is left at the default,unresponsive ssh clients are disconnected after approxi-
mately 45 seconds. ClientAliveInterval Sets a timeout interval in seconds after which, if no data has been received from the client, sshd sends a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages are not sent to the client. ThisSunOS 5.11 Last change: 35 Aug 2010 3
File Formats sshd_config(4)
option applies only to protocol version 2. CompressionControls whether the server allows the client to nego-
tiate the use of compression. The default is yes. DenyGroups Can be followed by a number of group names, separated by spaces. Users whose primary or supplementary group matches one of the patterns are not allowed to log in.Asterisk (*) and question mark (?) can be used as wild-
cards in the patterns. Only group names are valid; a numerical group ID is not recognized. By default, login is allowed regardless of the primary group. DenyUsers Can be followed by a number of user names, separated by spaces. Login is disallowed for user names that match one of the patterns. Asterisk (*) and question mark (?) can be used as wildcards in the patterns. Only user names are valid; a numerical user ID is not recognized. By default, login is allowed regardless of the user name. If a specified pattern takes the form user@host then user and host are checked separately, disallowing logins to particular users from particular hosts. GatewayPorts Specifies whether remote hosts are allowed to connect to ports forwarded for the client. By default, sshd binds remote port forwardings to the loopback address. This prevents other remote hosts from connecting to forwarded ports. GatewayPorts can be used to specify that sshd should bind remote port forwardings to the wildcardaddress, thus allowing remote hosts to connect to for-
warded ports. The argument can be no to force remote port forwardings to be available to the local host only, yes to force remote port forwardings to bind to the wildcard address, or clientspecified to allow the client to select the address to which the forwarding is bound. The default isno. See also RemoteForward in ssh_config(4).
SunOS 5.11 Last change: 35 Aug 2010 4
File Formats sshd_config(4)
GSSAPIAuthenticationEnables/disables GSS-API user authentication. The
default is yes. Currently sshd authorizes client user principals to user accounts as follows: if the principal name matches therequested user account, then the principal is author-
ized. Otherwise, GSS-API authentication fails.
GSSAPIKeyExchangeEnables/disables GSS-API-authenticated key exchanges.
The default is yes.This option also enables the use of the GSS-API to
authenticate the user to server after the key exchange.GSS-API key exchange can succeed but the subsequent
authentication using the GSS-API fail if the server does
not authorize the user's GSS principal name to the tar-
get user account. Currently sshd authorizes client user principals to user accounts as follows: if the principal name matches therequested user account, then the principal is author-
ized. Otherwise, GSS-API authentication fails.
GSSAPIStoreDelegatedCredentialsEnables/disables the use of delegated GSS-API creden-
tials on the server-side. The default is yes.
Specifically, this option, when enabled, causes theserver to store delegated GSS-API credentials in the
user's default GSS-API credential store (which for the
Kerberos V mechanism means /tmp/krb5cc_
). Note -
sshd does not take any steps to explicitly destroystored delegated GSS-API credentials upon logout. It
is the responsibility of PAM modules to destroy credentials associated with a session. HostbasedAuthenticationSpecifies whether to try rhosts-based authentication
with public key authentication. The argument must be yes or no. The default is no. This option applies toSunOS 5.11 Last change: 35 Aug 2010 5
File Formats sshd_config(4)
protocol version 2 only and is similar to RhostsRSAAu-
thentication. See sshd(1M) for guidelines on setting uphost-based authentication.
HostbasedUsesNameFromPacketOnly Controls which hostname is searched for in the files ~/.shosts, /etc/shosts.equiv, and /etc/hosts.equiv. If this parameter is set to yes, the server uses the name the client claimed for itself and signed with that host's key. If set to no, the default, the server uses the name to which the client's IP address resolves.Setting this parameter to no disables host-based authen-
tication when using NAT or when the client gets to theserver indirectly through a port-forwarding firewall.
HostKey Specifies the file containing the private host key usedby SSH. The default is /etc/ssh/ssh_host_key for proto-
col version 1, and /etc/ssh/ssh_host_rsa_key and
/etc/ssh/ssh_host_dsa_key for protocol version 2. sshd
refuses to use a file if it is group/world-accessible.
It is possible to have multiple host key files. rsa1 keys are used for version 1 and dsa or rsa are used for version 2 of the SSH protocol. IgnoreRhosts Specifies that .rhosts and .shosts files are not used in authentication. /etc/hosts.equiv and /etc/shosts.equiv are still used. The default is yes. This parameter applies to both protocol versions 1 and 2. IgnoreUserKnownHosts Specifies whether sshd should ignore the user's$HOME/.ssh/known_hosts during RhostsRSAAuthentication.
The default is no. This parameter applies to both proto-
col versions 1 and 2. KbdInteractiveAuthentication Specifies whether authentication by means of thekeyboard-interactive authentication method is allowed.
Defaults to yesSunOS 5.11 Last change: 35 Aug 2010 6
File Formats sshd_config(4)
KeepAliveSpecifies whether the system should send keepalive mes-
sages to the other side. If they are sent, death of the connection or crash of one of the machines is properly noticed. However, this means that connections die if the route is down temporarily, which can be an annoyance. On the other hand, if keepalives are not sent, sessions can hang indefinitely on the server, leaving ghost users and consuming server resources. The default is yes (to send keepalives), and the server notices if the network goes down or the client host reboots. This avoids infinitely hanging sessions. To disable keepalives, the value should be set to no in both the server and the client configuration files. KeyRegenerationInterval In protocol version 1, the ephemeral server key is automatically regenerated after this many seconds (if it has been used). The purpose of regeneration is to prevent decrypting captured sessions by later breaking into the machine and stealing the keys. The key is never stored anywhere. If the value is 0, the key is never regenerated. The default is 3600 (seconds). ListenAddress Specifies what local address sshd should listen on. The following forms can be used:ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port
If port is not specified, sshd listens on the address and all prior Port options specified. The default is to listen on all local addresses. Multiple ListenAddress options are permitted. Additionally, any Port optionsmust precede this option for non-port qualified
addresses.The default is to listen on all local addresses. Multi-
ple options of this type are permitted. Additionally, the Ports options must precede this option.SunOS 5.11 Last change: 35 Aug 2010 7
File Formats sshd_config(4)
LoginGraceTime The server disconnects after this time (in seconds) if the user has not successfully logged in. If the value is 0, there is no time limit. The default is 120 (seconds). LogLevelGives the verbosity level that is used when logging mes-
sages from sshd. The possible values are: QUIET, FATAL,ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.
The default is INFO. DEBUG2 and DEBUG3 each specify higher levels of debugging output. Logging with levelDEBUG violates the privacy of users and is not recom-
mended. LookupClientHostnames Specifies whether or not to lookup the names of client's addresses. Defaults to yes. MACs Specifies the available MAC (message authentication code) algorithms. The MAC algorithm is used in protocolversion 2 for data integrity protection. Multiple algo-
rithms must be comma-separated. The default is hmac-
md5,hmac-sha1,hmac-sha1-96,hmac-md5-96.
Match Introduces a conditional block. If all of the criteria on the Match line are satisfied, the keywords on the following lines override those set in the global section of the config file, until either another Match line or the end of the file. Match blocks must be located at the end of the file, after all the global settings.The arguments to Match are one or more criteria-pattern
pairs. The available criteria are User, Group, Host, and Address. The match patterns can consist of singleentries or comma-separated lists and can use the wild-
card (Asterisk * and question mark ?) and negation (!) operators. The patterns in a Host criteria should be hostname. The patterns in an Address criteria should be an IP address, which can additionally contain addresses to match inSunOS 5.11 Last change: 35 Aug 2010 8
File Formats sshd_config(4)
CIDR address/masklen format, for example, 192.0.2.0/24or 2001:DB8::/32. The mask length provided must be con-
sistent with the address - it is an error to specify a
mask length that is too long for the address or one withbits set in this host portion of the address. For exam-
ple, 192.0.2.0/33 and 192.0.2.0/8 respectively.Only a subset of keywords can be used on the lines fol-
lowing a Match keyword. Available keywords areAllowTcpForwarding, Banner, ChrootDirectory, Gateway-
Ports, GSSAPIAuthentication, HostbasedAuthentication,KbdInteractiveAuthentication, MaxAuthTries, PasswordAu-
thentication, PermitEmptyPasswords, PermitRootLogin,PubkeyAuthentication, RhostsRSAAuthentication, RSAAu-
thentication, X11DisplayOffset, X11Forwarding, and X11UseLocalhost. The following are four examples of using Match:1. Disallowing user testuser to use TCP forward-
ing: Match User testuser AllowTcpForwarding no 2. Displaying a special banner for users not in the staff group: Match Group *,!staff Banner /etc/banner.text 3. Allowing root login from host rootallowed.example.com: Match Host rootallowed.example.com PermitRootLogin yes 4. Allowing anyone to use GatewayPorts from the local net: Match Address 192.168.0.0/24 GatewayPorts yes MaxStartupsSpecifies the maximum number of concurrent unauthenti-
cated connections to the sshd daemon. AdditionalSunOS 5.11 Last change: 35 Aug 2010 9
File Formats sshd_config(4)
connections are dropped until authentication succeeds or the LoginGraceTime expires for a connection. The default is 10. Alternatively, random early drop can be enabled byspecifying the three colon-separated values
start:rate:full (for example, 10:30:60). Referring to this example, sshd refuse connection attempts with aprobability of rate/100 (30% in our example) if there
are currently 10 (from the start field) unauthenticated connections. The probability increases linearly and allconnection attempts are refused if the number of unau-
thenticated connections reaches full (60 in our exam-
ple). PAMServiceName Specifies the PAM service name for the PAM session. The PAMServiceName and PAMServicePrefix options are mutually exclusive and if both set, sshd does not start. If this option is set the service name is the same for all user authentication methods. The option has no default value. See PAMServicePrefix for more information. PAMServicePrefix Specifies the PAM service name prefix for service names used for individual user authentication methods. The default is sshd. The PAMServiceName and PAMServicePrefix options are mutually exclusive and if both set, sshd does not start.For example, if this option is set to admincli, the ser-
vice name for the keyboard-interactive authentication
method is admincli-kbdint instead of the default sshd-
kbdint. PasswordAuthentication Specifies whether password authentication is allowed. The default is yes. This option applies to both protocol versions 1 and 2. PermitEmptyPasswordsWhen password or keyboard-interactive authentication is
allowed, it specifies whether the server allows login to accounts with empty password strings.SunOS 5.11 Last change: 35 Aug 2010 10
File Formats sshd_config(4)
If not set then the /etc/default/login PASSREQ value is used instead. PASSREQ=no is equivalent to PermitEmptyPasswords yes. PASSREQ=yes is equivalent to PermitEmptyPasswords no. If neither PermitEmptyPasswords or PASSREQ are set the default is no. PermitRootLogin Specifies whether the root can log in using ssh(1). Theargument must be yes, without-password, forced-
commands-only, or no. without-password means that root
cannot be authenticated using the "password" or"keyboard-interactive" methods (see description of
KbdInteractiveAuthentication). forced-commands-only
means that authentication is allowed only for publickey (for SSHv2, or RSA, for SSHv1) and only if the matchingauthorized_keys entry for root has a command=
option.In Solaris, the default /etc/ssh/sshd_config file is
shipped with PermitRootLogin set to no. If unset by the administrator, then CONSOLE parameter from/etc/default/login supplies the default value as fol-
lows: if the CONSOLE parameter is not commented out (itcan even be empty, that is, "CONSOLE="), then without-
password is used as default value. If CONSOLE is com-
mented out, then the default for PermitRootLogin is yes.The without-password and forced-commands-only settings
are useful for, for example, performing remote adminis-
tration and backups using trusted public keys for authentication of the remote client, without allowing access to the root account using passwords. PermitUserEnvironment Specifies whether a user's ~/.ssh/environment on theserver side and environment options in the Author-
izedKeysFile file are processed by sshd. The default is no. Enabling environment processing can enable users to bypass access restrictions in some configurations usingmechanisms such as LD_PRELOAD.
Environment setting from a relevant entry in Author-
izedKeysFile file is processed only if the user was authenticated using the public key authentication method. Of the two files used, values of variables set in ~/.ssh/environment are of higher priority.SunOS 5.11 Last change: 35 Aug 2010 11
File Formats sshd_config(4)
PidFile Allows you to specify an alternative to /var/run/sshd.pid, the default file for storing the PID of the sshd listening for connections. See sshd(1M). Port Specifies the port number that sshd listens on. Thedefault is 22. Multiple options of this type are permit-
ted. See also ListenAddress. PreUserauthHook Specifies an executable which is run prior to any of the processed authentication methods. The executable can be used to synchronize user information with a remoteuser-management facility using an arbitrary communica-
tion protocol.The executable is run before any user validation is con-
ducted by SSHD so the user is not required to be existent before she tries to log in.The executable is invoked with two arguments in the fol-
lowing order: the name of the current authentication method and the username. The environment variableSSH_CONNECTION is also passed to the executable. If the
executable returns a zero exit status, the current authentication method is processed as normal. See sshd(1M). If the exit status is 1, the current authentication method is ignored and can not be used to validate theuser. The executable must be owned by root and have per-
missions of 0500, otherwise it is treated as if it has exited with status 1. There is no default value for this property. PrintLastLog Specifies whether sshd should display the date and time when the user last logged in. The default is yes. PrintMotd Specifies whether sshd should display the contents ofSunOS 5.11 Last change: 35 Aug 2010 12
File Formats sshd_config(4)
/etc/motd when a user logs in interactively. (On some systems it is also displayed by the shell or a shell startup file, such as /etc/profile.) The default is yes. Protocol Specifies the protocol versions sshd should support in order of preference. The possible values are 1 and 2.Multiple versions must be comma-separated. The default
is 2,1. This means that ssh tries version 2 and falls back to version 1 if version 2 is not available. PubkeyAuthentication Specifies whether public key authentication is allowed.The default is yes. This option applies to protocol ver-
sion 2 only. RhostsAuthentication Specifies whether authentication using rhosts or /etc/hosts.equiv files is sufficient. Normally, this method should not be permitted because it is insecure. RhostsRSAAuthentication should be used instead, becauseit performs RSA-based host authentication in addition to
normal rhosts or /etc/hosts.equiv authentication. The default is no. This parameter applies only to protocol version 1. RhostsRSAAuthenticationSpecifies whether rhosts or /etc/hosts.equiv authentica-
tion together with successful RSA host authentication is allowed. The default is no. This parameter applies only to protocol version 1. RSAAuthentication Specifies whether pure RSA authentication is allowed.The default is yes. This option applies to protocol ver-
sion 1 only. ServerKeyBits Defines the number of bits in the ephemeral protocol version 1 server key. The minimum value is 512, and theSunOS 5.11 Last change: 35 Aug 2010 13
File Formats sshd_config(4)
default is 768. StrictModesSpecifies whether sshd should check file modes and own-
ership of the user's files and home directory before accepting login. This is normally desirable because novices sometimes accidentally leave their directory orfiles world-writable. The default is yes.
Subsystem Configures an external subsystem (for example, a file transfer daemon). Arguments should be a subsystem name and a command to execute upon subsystem request. Thecommand sftp-server(1M) implements the sftp file
transfer subsystem.Alternately, the name internal-sftp implements an in-
process sftp server. This can simplify configurations using ChrootDirectory to force a different filesystem root on clients. By default, no subsystems are defined. This option applies to protocol version 2 only. SyslogFacilityGives the facility code that is used when logging mes-
sages from sshd. The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, and LOCAL7. The default is AUTH. UseOpenSSLEngineSpecifies whether sshd should use the OpenSSL PKCS#11
engine for offloading cryptographic operations to the Cryptographic Framework. Cryptographic operations areaccelerated according to the available installed plug-
ins. When no suitable plug-ins are present this option
does not have an effect. The default is yes. VerifyReverseMapping Specifies whether sshd should try to verify the remote host name and check that the resolved host name for the remote IP address maps back to the very same IP address.SunOS 5.11 Last change: 35 Aug 2010 14
File Formats sshd_config(4)
(A yes setting means "verify".) Setting this parameter to no can be useful where DNS servers might be down and thus cause sshd to spend much time trying to resolve the client's IP address to a name. This feature is usefulfor Internet-facing servers. The default is no.
X11DisplayOffset Specifies the first display number available for sshd's X11 forwarding. This prevents sshd from interfering with real X11 servers. The default is 10. X11Forwarding Specifies whether X11 forwarding is permitted. The default is yes. Disabling X11 forwarding does not improve security in any way, as users can always install their own forwarders. When X11 forwarding is enabled, there can be additional exposure to the server and to client displays if thesshd proxy display is configured to listen on the wild-
card address (see X11UseLocalhost). However, this is not the default. Additionally, the authentication spoofing and authentication data verification and substitution occur on the client side. The security risk of using X11 forwarding is that the client's X11 display server canbe exposed to attack when the ssh client requests for-
warding (see the warnings for ForwardX11 inssh_config(4)). A system administrator who wants to pro-
tect clients that expose themselves to attack by unwit-
tingly requesting X11 forwarding, should specify a no setting. Disabling X11 forwarding does not prevent users from forwarding X11 traffic, as users can always install their own forwarders. X11UseLocalhost Specifies whether sshd should bind the X11 forwarding server to the loopback address or to the wildcard address. By default, sshd binds the forwarding server to the loopback address and sets the hostname part of the DISPLAY environment variable to localhost. This preventsremote hosts from connecting to the proxy display. How-
ever, some older X11 clients might not function with this configuration. X11UseLocalhost can be set to no to specify that the forwarding server should be bound toSunOS 5.11 Last change: 35 Aug 2010 15
File Formats sshd_config(4)
the wildcard address. The argument must be yes or no. The default is yes. XAuthLocation Specifies the location of the xauth(1) program. Thedefault is /usr/X11/bin/xauth and sshd attempts to open it when X11 forwarding is enabled. Time Formats
sshd command-line arguments and configuration file options
that specify time can be expressed using a sequence of the form: time[qualifier,] where time is a positive integer value and qualifier is one of the following:seconds s | S seconds m | M minutes h | H hours d | D days w | weeks Each element of the sequence is added together to calculate the total time value. For example: 600 600 seconds (10 minutes) 10m 10 minutes 1h30m 1 hour, 30 minutes (90 minutes) FILES /etc/ssh/sshd_config Contains configuration data for
sshd. This file should be writable by root only, but it is recommendedSunOS 5.11 Last change: 35 Aug 2010 16
File Formats sshd_config(4)
(though not necessary) that it beworld-readable.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | network/ssh ||_____________________________|_____________________________|
| Interface Stability | Uncommitted ||_____________________________|_____________________________|
SEE ALSO
login(1), sshd(1M), chroot(2), ssh_config(4), attributes(5),
kerberos(5) AUTHORS OpenSSH is a derivative of the original and free ssh 1.2.12 release by Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and Dug Song removedmany bugs, re-added recent features, and created OpenSSH.
Markus Friedl contributed the support for SSH protocol ver-
sions 1.5 and 2.0. Niels Provos and Markus Friedl contri-
buted support for privilege separation.SunOS 5.11 Last change: 35 Aug 2010 17