SSHD_CONFIG(5) | File Formats Manual | SSHD_CONFIG(5) |
sshd_config
—
sshd
reads configuration data from
/etc/ssh/sshd_config (or the file specified with
-f
on the command line). The file contains
keyword-argument pairs, one per line. Lines starting with
‘#
’ and empty lines are interpreted as
comments.
The possible keywords and their meanings are as follows (note that keywords are case-insensitive and arguments are case-sensitive):
AcceptEnv
SendEnv
in ssh_config(5) for how
to configure the client. Note that environment passing is only supported
for protocol 2. Variables are specified by name, which may contain the
wildcard characters ‘*
’ and
‘?
’. Multiple environment variables
may be separated by whitespace or spread across multiple
AcceptEnv
directives. Be warned that some
environment variables could be used to bypass restricted user
environments. For this reason, care should be taken in the use of this
directive. The default is not to accept any environment variables.AddressFamily
sshd
. Valid arguments are “any”,
“inet” (use IPv4 only) or “inet6” (use IPv6
only). The default is “any”.AllowGroups
*
’ and
‘?
’ 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 for all groups.AllowTcpForwarding
AllowUsers
*
’ and
‘?
’ 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 for all users. If the pattern
takes the form USER@HOST then USER and HOST are separately checked,
restricting logins to particular users from particular hosts.AuthorizedKeysFile
AuthorizedKeysFile
may 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 authenticated and %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. The default is
“.ssh/authorized_keys”.Banner
ChallengeResponseAuthentication
Ciphers
``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr''
ClientAliveCountMax
sshd
receiving any messages back from the
client. If this threshold is reached while client alive messages are being
sent, sshd
will disconnect the client, terminating
the session. It is important to note that the use of client alive messages
is very different from TCPKeepAlive
(below). The
client alive messages are sent through the encrypted channel and therefore
will not be spoofable. The TCP keepalive option enabled by
TCPKeepAlive
is spoofable. The client alive
mechanism is valuable when the client or server depend on knowing when a
connection has become inactive.
The default value is 3. If
ClientAliveInterval
(above) is set to 15, and
ClientAliveCountMax
is left at the default,
unresponsive ssh clients will be disconnected after approximately 45
seconds.
ClientAliveInterval
sshd
will send a message
through the encrypted channel to request a response from the client. The
default is 0, indicating that these messages will not be sent to the
client. This option applies to protocol version 2 only.Compression
DenyGroups
*
’ and
‘?
’ 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 for all groups.DenyUsers
*
’ and
‘?
’ 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 for all users. If the pattern
takes the form USER@HOST then USER and HOST are separately checked,
restricting logins to particular users from particular hosts.GatewayPorts
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 allow remote port
forwardings to bind to non-loopback addresses, thus allowing other hosts
to connect. The argument may 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 is “no”.GSSAPIAuthentication
GSSAPICleanupCredentials
HostbasedAuthentication
RhostsRSAAuthentication
and applies to protocol
version 2 only. The default is “no”.HostKey
sshd
will refuse 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
RhostsRSAAuthentication
or
HostbasedAuthentication
.
/etc/hosts.equiv and /etc/shosts.equiv are still used. The default is “yes”.
IgnoreUserKnownHosts
sshd
should ignore the user's
~/.ssh/known_hosts during
RhostsRSAAuthentication
or
HostbasedAuthentication
. The default is
“no”.KerberosAuthentication
PasswordAuthentication
will be validated through
the Kerberos KDC. To use this option, the server needs a Kerberos servtab
which allows the verification of the KDC's identity. Default is
“no”.KerberosGetAFSToken
KerberosOrLocalPasswd
KerberosTicketCleanup
KeyRegenerationInterval
ListenAddress
sshd
should listen
on. The following forms may be used:
ListenAddress
host|IPv4_addr|IPv6_addrListenAddress
host|IPv4_addr:portListenAddress
[host|IPv6_addr]:portIf port is not specified,
sshd
will listen 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
options must precede this option for non port qualified addresses.
LoginGraceTime
LogLevel
sshd
. The possible values are: QUIET, FATAL,
ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. The default is
INFO. DEBUG and DEBUG1 are equivalent. DEBUG2 and DEBUG3 each specify
higher levels of debugging output. Logging with a DEBUG level violates the
privacy of users and is not recommended.MACs
MaxAuthTries
MaxStartups
sshd
daemon. Additional connections will be
dropped until authentication succeeds or the
LoginGraceTime
expires for a connection. The
default is 10.
Alternatively, random early drop can be enabled by specifying
the three colon separated values “start:rate:full” (e.g.,
"10:30:60"). sshd
will refuse
connection attempts with a probability of “rate/100” (30%)
if there are currently “start” (10) unauthenticated
connections. The probability increases linearly and all connection
attempts are refused if the number of unauthenticated connections
reaches “full” (60).
PasswordAuthentication
PermitEmptyPasswords
PermitRootLogin
If this option is set to “without-password” password authentication is disabled for root.
If this option is set to “forced-commands-only” root login with public key authentication will be allowed, but only if the command option has been specified (which may be useful for taking remote backups even if root login is normally not allowed). All other authentication methods are disabled for root.
If this option is set to “no” root is not allowed to log in.
PermitUserEnvironment
environment=
options in
~/.ssh/authorized_keys are processed by
sshd
. The default is “no”. Enabling
environment processing may enable users to bypass access restrictions in
some configurations using mechanisms such as
LD_PRELOAD
.PidFile
sshd
daemon. The default is
/var/run/sshd.pid.Port
sshd
listens on.
The default is 22. Multiple options of this type are permitted. See also
ListenAddress
.PrintLastLog
sshd
should print the date and
time of the last user login when a user logs in interactively. The default
is “yes”.PrintMotd
sshd
should print
/etc/motd when a user logs in interactively. (On
some systems it is also printed by the shell,
/etc/profile, or equivalent.) The default is
“yes”.Protocol
sshd
supports. The
possible values are “1” and “2”. Multiple
versions must be comma-separated. The default is “2,1”. Note
that the order of the protocol list does not indicate preference, because
the client selects among multiple protocol versions offered by the server.
Specifying “2,1” is identical to “1,2”.PubkeyAuthentication
RhostsRSAAuthentication
RSAAuthentication
ServerKeyBits
StrictModes
sshd
should check file modes and
ownership of the user's files and home directory before accepting login.
This is normally desirable because novices sometimes accidentally leave
their directory or files world-writable. The default is
“yes”.Subsystem
SyslogFacility
sshd
. The possible values are: DAEMON, USER, AUTH,
LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. The
default is AUTH.TCPKeepAlive
The default is “yes” (to send TCP keepalive messages), and the server will notice if the network goes down or the client host crashes. This avoids infinitely hanging sessions.
To disable TCP keepalive messages, the value should be set to “no”.
UseDNS
sshd
should look up the remote
host name and check that the resolved host name for the remote IP address
maps back to the very same IP address. The default is
“yes”.UseLogin
X11Forwarding
will be disabled because login(1) does not know how to
handle xauth(1) cookies. If
UsePrivilegeSeparation
is specified, it will be
disabled after authentication.UsePAM
ChallengeResponseAuthentication
and PAM account
and session module processing for all authentication types.
Because PAM challenge-response authentication usually serves
an equivalent role to password authentication, you should disable either
PasswordAuthentication
or
ChallengeResponseAuthentication.
If UsePAM
is enabled, you will not be
able to run sshd(8) as a non-root user. The default is
“no”.
UsePrivilegeSeparation
sshd
separates privileges by
creating an unprivileged child process to deal with incoming network
traffic. After successful authentication, another process will be created
that has the privilege of the authenticated user. The goal of privilege
separation is to prevent privilege escalation by containing any corruption
within the unprivileged processes. The default is
“yes”.X11DisplayOffset
sshd
's X11 forwarding. This prevents
sshd
from interfering with real X11 servers. The
default is 10.X11Forwarding
When X11 forwarding is enabled, there may be additional
exposure to the server and to client displays if the
sshd
proxy display is configured to listen on
the wildcard address (see X11UseLocalhost
below), 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 may be exposed to
attack when the ssh client requests forwarding (see the warnings for
ForwardX11
in ssh_config(5)).
A system administrator may have a stance in which they want to protect
clients that may expose themselves to attack by unwittingly requesting
X11 forwarding, which can warrant a “no” setting.
Note that disabling X11 forwarding does not prevent users from
forwarding X11 traffic, as users can always install their own
forwarders. X11 forwarding is automatically disabled if
UseLogin
is enabled.
X11UseLocalhost
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 prevents remote hosts from connecting to
the proxy display. However, some older X11 clients may not function with
this configuration. X11UseLocalhost
may be set to
“no” to specify that the forwarding server should be bound
to the wildcard address. The argument must be “yes” or
“no”. The default is “yes”.XAuthLocation
sshd
command-line arguments and configuration file
options that specify time may be expressed using a sequence of the form:
time[qualifier], where
time is a positive integer value and
qualifier is one of the following:
Each member of the sequence is added together to calculate the total time value.
Time format examples:
sshd
. This file
should be writable by root only, but it is recommended (though not
necessary) that it be world-readable.September 25, 1999 | BSD |