dwww Home | Manual pages | Find package

SSHD_CONFIG(5)                 File Formats Manual               SSHD_CONFIG(5)

NAME
       sshd_config — OpenSSH daemon configuration file

DESCRIPTION
       sshd(8)  reads configuration data from /etc/ssh/sshd_config (or the file
       specified with -f on the command line).  The file contains keyword-argu-
       ment pairs, one per line.  Unless noted otherwise, for each keyword, the
       first obtained value will be used.  Lines starting with  ‘#’  and  empty
       lines are interpreted as comments.  Arguments may optionally be enclosed
       in double quotes (") in order to represent arguments containing spaces.

       Note  that  the  Debian  openssh-server  package sets several options as
       standard in /etc/ssh/sshd_config which are not the default in sshd(8):

             •   Include /etc/ssh/sshd_config.d/*.conf
             •   KbdInteractiveAuthentication no
             •   X11Forwarding yes
             •   PrintMotd no
             •   AcceptEnv LANG LC_* COLORTERM NO_COLOR
             •   Subsystem sftp /usr/lib/openssh/sftp-server
             •   UsePAM yes

       /etc/ssh/sshd_config.d/*.conf files are included at  the  start  of  the
       configuration  file,  so  options  set  there  will  override  those  in
       /etc/ssh/sshd_config.

       The possible keywords and their meanings are as follows (note that  key-
       words are case-insensitive and arguments are case-sensitive):

       AcceptEnv
               Specifies  what environment variables sent by the client will be
               copied into the session's environ(7).  See SendEnv and SetEnv in
               ssh_config(5) for how to configure the client.  The  TERM  envi-
               ronment variable is always accepted whenever the client requests
               a  pseudo-terminal as it is required by the protocol.  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 ac-
               cept any environment variables.

       AddressFamily
               Specifies which address family should be used by sshd(8).  Valid
               arguments are any (the default), inet (use IPv4 only), or  inet6
               (use IPv6 only).

       AllowAgentForwarding
               Specifies whether ssh-agent(1) forwarding is permitted.  The de-
               fault is yes.  Note that disabling agent forwarding does not im-
               prove  security  unless  users  are also denied shell access, as
               they can always install their own forwarders.

       AllowGroups
               This keyword can be followed by a list of group  name  patterns,
               separated  by  spaces.   If specified, login is allowed only for
               users whose primary group or supplementary  group  list  matches
               one  of  the  patterns.  Only group names are valid; a numerical
               group ID is not recognized.  By default, login  is  allowed  for
               all  groups.   The allow/deny groups directives are processed in
               the following order: DenyGroups, AllowGroups.

               See PATTERNS in ssh_config(5) for more information on  patterns.
               This  keyword may appear multiple times in sshd_config with each
               instance appending to the list.

       AllowStreamLocalForwarding
               Specifies whether StreamLocal (Unix-domain socket) forwarding is
               permitted.  The available options are yes (the default)  or  all
               to  allow  StreamLocal forwarding, no to prevent all StreamLocal
               forwarding, local  to  allow  local  (from  the  perspective  of
               ssh(1))  forwarding  only  or  remote to allow remote forwarding
               only.  Note that disabling StreamLocal forwarding does  not  im-
               prove  security  unless  users  are also denied shell access, as
               they can always install their own forwarders.

       AllowTcpForwarding
               Specifies whether TCP forwarding is  permitted.   The  available
               options are yes (the default) or all to allow TCP forwarding, no
               to  prevent  all  TCP forwarding, local to allow local (from the
               perspective of ssh(1)) forwarding only or remote to allow remote
               forwarding only.  Note that 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 list of  user  name  patterns,
               separated  by  spaces.   If specified, login is allowed only for
               user names that match one of 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.  HOST criteria
               may  additionally  contain  addresses  to  match  in  CIDR   ad-
               dress/masklen  format.   The  allow/deny  users  directives  are
               processed in the following order: DenyUsers, AllowUsers.

               See PATTERNS in ssh_config(5) for more information on  patterns.
               This  keyword may appear multiple times in sshd_config with each
               instance appending to the list.

       AuthenticationMethods
               Specifies the authentication methods that must  be  successfully
               completed  for a user to be granted access.  This option must be
               followed by one or more lists of comma-separated  authentication
               method  names,  or  by the single string any to indicate the de-
               fault behaviour of accepting any single  authentication  method.
               If the default is overridden, then successful authentication re-
               quires  completion  of  every  method  in  at least one of these
               lists.

               For example, "publickey,password publickey,keyboard-interactive"
               would require the user to complete  public  key  authentication,
               followed  by either password or keyboard interactive authentica-
               tion.  Only methods that are next in one or more lists  are  of-
               fered  at each stage, so for this example it would not be possi-
               ble to attempt password or  keyboard-interactive  authentication
               before public key.

               For  keyboard  interactive authentication it is also possible to
               restrict authentication to a  specific  device  by  appending  a
               colon followed by the device identifier bsdauth or pam.  depend-
               ing    on    the    server    configuration.     For    example,
               "keyboard-interactive:bsdauth" would restrict keyboard  interac-
               tive authentication to the bsdauth device.

               If  the publickey method is listed more than once, sshd(8) veri-
               fies that keys that have been used successfully are  not  reused
               for      subsequent      authentications.       For     example,
               "publickey,publickey" requires successful  authentication  using
               two different public keys.

               Note  that  each authentication method listed should also be ex-
               plicitly enabled in the configuration.

               The available  authentication  methods  are:  "gssapi-with-mic",
               "hostbased",  "keyboard-interactive", "none" (used for access to
               password-less accounts when  PermitEmptyPasswords  is  enabled),
               "password" and "publickey".

       AuthorizedKeysCommand
               Specifies  a  program  to  be  used to look up the user's public
               keys.  The program must be owned by root, not writable by  group
               or  others  and  specified  by  an  absolute path.  Arguments to
               AuthorizedKeysCommand  accept  the  tokens  described   in   the
               “TOKENS”  section.  If no arguments are specified then the user-
               name of the target user is used.

               The program should produce on standard output zero or more lines
               of authorized_keys  output  (see  AUTHORIZED_KEYS  in  sshd(8)).
               AuthorizedKeysCommand     is     tried     after    the    usual
               AuthorizedKeysFile files and will not be executed if a  matching
               key  is  found  there.   By default, no AuthorizedKeysCommand is
               run.

       AuthorizedKeysCommandUser
               Specifies the user under whose account the AuthorizedKeysCommand
               is run.  It is recommended to use a dedicated user that  has  no
               other  role  on  the host than running authorized keys commands.
               If      AuthorizedKeysCommand       is       specified       but
               AuthorizedKeysCommandUser  is  not,  then sshd(8) will refuse to
               start.

       AuthorizedKeysFile
               Specifies the file that contains the public keys used  for  user
               authentication.   The format is described in the AUTHORIZED_KEYS
               FILE FORMAT section of sshd(8).  Arguments to AuthorizedKeysFile
               may include wildcards and accept the  tokens  described  in  the
               “TOKENS”  section.  After expansion, AuthorizedKeysFile is taken
               to be an absolute path or one relative to the user's home direc-
               tory.  Multiple files may be listed,  separated  by  whitespace.
               Alternately  this option may be set to none to skip checking for
               user  keys  in  files.   The  default  is  ".ssh/authorized_keys
               .ssh/authorized_keys2".

       AuthorizedPrincipalsCommand
               Specifies  a  program to be used to generate the list of allowed
               certificate principals  as  per  AuthorizedPrincipalsFile.   The
               program  must  be owned by root, not writable by group or others
               and   specified   by   an   absolute   path.     Arguments    to
               AuthorizedPrincipalsCommand  accept  the tokens described in the
               “TOKENS” section.  If no arguments are specified then the  user-
               name of the target user is used.

               The program should produce on standard output zero or more lines
               of      AuthorizedPrincipalsFile      output.      If     either
               AuthorizedPrincipalsCommand or AuthorizedPrincipalsFile is spec-
               ified, then certificates offered by the client  for  authentica-
               tion  must  contain  a principal that is listed.  By default, no
               AuthorizedPrincipalsCommand is run.

       AuthorizedPrincipalsCommandUser
               Specifies    the    user     under     whose     account     the
               AuthorizedPrincipalsCommand  is run.  It is recommended to use a
               dedicated user that has no other role on the host  than  running
               authorized  principals commands.  If AuthorizedPrincipalsCommand
               is specified but AuthorizedPrincipalsCommandUser  is  not,  then
               sshd(8) will refuse to start.

       AuthorizedPrincipalsFile
               Specifies  a  file  that lists principal names that are accepted
               for certificate authentication.  When using certificates  signed
               by a key listed in TrustedUserCAKeys, this file lists names, one
               of  which  must  appear in the certificate for it to be accepted
               for authentication.  Names are listed one per line  preceded  by
               key  options  (as  described  in  AUTHORIZED_KEYS FILE FORMAT in
               sshd(8)).  Empty lines and comments starting with  ‘#’  are  ig-
               nored.

               Arguments  to AuthorizedPrincipalsFile may include wildcards and
               accept the tokens described in the “TOKENS” section.  After  ex-
               pansion,  AuthorizedPrincipalsFile  is  taken  to be an absolute
               path or one relative to the user's home directory.  The  default
               is  none,  i.e. not to use a principals file – in this case, the
               username of the user must appear in a  certificate's  principals
               list for it to be accepted.

               Note that AuthorizedPrincipalsFile is only used when authentica-
               tion  proceeds using a CA listed in TrustedUserCAKeys and is not
               consulted   for   certification    authorities    trusted    via
               ~/.ssh/authorized_keys, though the principals= key option offers
               a similar facility (see sshd(8) for details).

       Banner  The  contents  of the specified file are sent to the remote user
               before authentication is allowed.  If the argument is none  then
               no banner is displayed.  By default, no banner is displayed.

       CASignatureAlgorithms
               Specifies  which  algorithms are allowed for signing of certifi-
               cates by certificate authorities (CAs).  The default is:

                     ssh-ed25519,ecdsa-sha2-nistp256,
                     ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
                     sk-ssh-ed25519@openssh.com,
                     sk-ecdsa-sha2-nistp256@openssh.com,
                     rsa-sha2-512,rsa-sha2-256

               If the specified list begins with  a  ‘+’  character,  then  the
               specified algorithms will be appended to the default set instead
               of  replacing  them.   If  the  specified list begins with a ‘-’
               character, then the specified algorithms  (including  wildcards)
               will be removed from the default set instead of replacing them.

               Certificates  signed using other algorithms will not be accepted
               for public key or host-based authentication.

       ChannelTimeout
               Specifies whether and how quickly sshd(8) should close  inactive
               channels.  Timeouts are specified as one or more “type=interval”
               pairs separated by whitespace, where the “type” must be the spe-
               cial  keyword  “global” or a channel type name from the list be-
               low, optionally containing wildcard characters.

               The timeout value “interval” is specified in seconds or may  use
               any  of the units documented in the “TIME FORMATS” section.  For
               example, “session=5m” would cause interactive sessions to termi-
               nate after five minutes of inactivity.  Specifying a zero  value
               disables the inactivity timeout.

               The  special  timeout  “global”  applies to all active channels,
               taken together.  Traffic on any active channel  will  reset  the
               timeout,  but  when  the  timeout expires then all open channels
               will be closed.  Note that this global timeout is not matched by
               wildcards and must be specified explicitly.

               The available channel type names include:

               agent-connection
                       Open connections to ssh-agent(1).

               direct-tcpip, direct-streamlocal@openssh.com
                       Open TCP or Unix socket (respectively) connections  that
                       have  been  established  from a ssh(1) local forwarding,
                       i.e. LocalForward or DynamicForward.

               forwarded-tcpip, forwarded-streamlocal@openssh.com
                       Open TCP or Unix socket (respectively) connections  that
                       have  been  established to a sshd(8) listening on behalf
                       of a ssh(1) remote forwarding, i.e. RemoteForward.

               session
                       The interactive main session, including  shell  session,
                       command execution, scp(1), sftp(1), etc.

               tun-connection
                       Open TunnelForward connections.

               x11-connection
                       Open X11 forwarding sessions.

               Note  that  in all the above cases, terminating an inactive ses-
               sion does not guarantee to remove all resources associated  with
               the session, e.g. shell processes or X11 clients relating to the
               session may continue to execute.

               Moreover,  terminating  an  inactive channel or session does not
               necessarily close the SSH connection,  nor  does  it  prevent  a
               client  from  requesting  another  channel of the same type.  In
               particular, expiring an inactive  forwarding  session  does  not
               prevent  another  identical  forwarding  from being subsequently
               created.

               The default is not to expire channels of any type  for  inactiv-
               ity.

       ChrootDirectory
               Specifies  the pathname of a directory to chroot(2) to after au-
               thentication.  At session startup sshd(8) checks that all compo-
               nents of the pathname are root-owned directories which  are  not
               writable  by group or others.  After the chroot, sshd(8) changes
               the working directory to the user's home  directory.   Arguments
               to  ChrootDirectory  accept the tokens described in the “TOKENS”
               section.

               The ChrootDirectory must contain the necessary files and  direc-
               tories  to  support the user's session.  For an interactive ses-
               sion this requires at least a shell, typically sh(1), and  basic
               /dev  nodes  such  as  null(4),  zero(4),  stdin(4),  stdout(4),
               stderr(4), and tty(4) devices.  For file transfer sessions using
               SFTP no additional configuration of the environment is necessary
               if the in-process sftp-server is used, though sessions which use
               logging may require /dev/log inside the chroot directory on some
               operating systems (see sftp-server(8) for details).

               For safety, it is very important that the directory hierarchy be
               prevented from modification by other  processes  on  the  system
               (especially  those outside the jail).  Misconfiguration can lead
               to unsafe environments which sshd(8) cannot detect.

               The default is none, indicating not to chroot(2).

       Ciphers
               Specifies the ciphers allowed.  Multiple ciphers must be  comma-
               separated.   If  the specified list begins with a ‘+’ character,
               then the specified ciphers will be appended to the  default  set
               instead  of replacing them.  If the specified list begins with a
               ‘-’ character, then the specified ciphers (including  wildcards)
               will  be removed from the default set instead of replacing them.
               If the specified list begins with  a  ‘^’  character,  then  the
               specified ciphers will be placed at the head of the default set.

               The supported ciphers are:

                     3des-cbc
                     aes128-cbc
                     aes192-cbc
                     aes256-cbc
                     aes128-ctr
                     aes192-ctr
                     aes256-ctr
                     aes128-gcm@openssh.com
                     aes256-gcm@openssh.com
                     chacha20-poly1305@openssh.com

               The default is:

                     chacha20-poly1305@openssh.com,
                     aes128-gcm@openssh.com,aes256-gcm@openssh.com,
                     aes128-ctr,aes192-ctr,aes256-ctr

               The list of available ciphers may also be obtained using "ssh -Q
               cipher".

       ClientAliveCountMax
               Sets the number of client alive messages which may be sent with-
               out  sshd(8)  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.  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
               unresponsive.

               The default value is 3.  If ClientAliveInterval is  set  to  15,
               and ClientAliveCountMax is left at the default, unresponsive SSH
               clients  will  be  disconnected  after approximately 45 seconds.
               Setting a zero ClientAliveCountMax disables connection  termina-
               tion.

       ClientAliveInterval
               Sets  a  timeout  interval in seconds after which if no data has
               been received from the  client,  sshd(8)  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.

       Compression
               Specifies  whether compression is enabled after the user has au-
               thenticated successfully.  The argument must be yes, delayed  (a
               legacy synonym for yes) or no.  The default is yes.

       DebianBanner
               Specifies  whether the distribution-specified extra version suf-
               fix is included during initial protocol handshake.  The  default
               is yes.

       DenyGroups
               This  keyword  can be followed by a list of group name patterns,
               separated by spaces.  Login is disallowed for users  whose  pri-
               mary  group  or supplementary group list matches one of the pat-
               terns.  Only group names are valid; a numerical group ID is  not
               recognized.   By  default, login is allowed for all groups.  The
               allow/deny groups directives are processed in the following  or-
               der: DenyGroups, AllowGroups.

               See  PATTERNS in ssh_config(5) for more information on patterns.
               This keyword may appear multiple times in sshd_config with  each
               instance appending to the list.

       DenyUsers
               This  keyword  can  be followed by a list of user name patterns,
               separated by spaces.  Login is disallowed for  user  names  that
               match one of the patterns.  Only user names are valid; a numeri-
               cal 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  particu-
               lar users from particular hosts.  HOST criteria may additionally
               contain  addresses to match in CIDR address/masklen format.  The
               allow/deny users directives are processed in the  following  or-
               der: DenyUsers, AllowUsers.

               See  PATTERNS in ssh_config(5) for more information on patterns.
               This keyword may appear multiple times in sshd_config with  each
               instance appending to the list.

       DisableForwarding
               Disables  all  forwarding features, including X11, ssh-agent(1),
               TCP and StreamLocal.  This option overrides all  other  forward-
               ing-related options and may simplify restricted configurations.

       ExposeAuthInfo
               Writes  a  temporary  file  containing  a list of authentication
               methods and public credentials (e.g. keys) used to  authenticate
               the  user.  The location of the file is exposed to the user ses-
               sion through the SSH_USER_AUTH environment  variable.   The  de-
               fault is no.

       FingerprintHash
               Specifies the hash algorithm used when logging key fingerprints.
               Valid options are: md5 and sha256.  The default is sha256.

       ForceCommand
               Forces  the  execution of the command specified by ForceCommand,
               ignoring any command supplied by the  client  and  ~/.ssh/rc  if
               present.  The command is invoked by using the user's login shell
               with  the -c option.  This applies to shell, command, or subsys-
               tem execution.  It is most useful inside  a  Match  block.   The
               command  originally  supplied  by the client is available in the
               SSH_ORIGINAL_COMMAND environment variable.  Specifying a command
               of internal-sftp will force the use of an in-process SFTP server
               that requires no support files when used  with  ChrootDirectory.
               The default is none.

       GatewayPorts
               Specifies  whether  remote hosts are allowed to connect to ports
               forwarded for the client.  By default, sshd(8) 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 forward-
               ings 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
               Specifies whether user authentication based  on  GSSAPI  is  al-
               lowed.  The default is no.

       GSSAPICleanupCredentials
               Specifies  whether  to  automatically destroy the user's creden-
               tials cache on logout.  The default is yes.

       GSSAPIKeyExchange
               Specifies whether key exchange based on GSSAPI is allowed.  GSS-
               API  key  exchange doesn't rely on ssh keys to verify host iden-
               tity.  The default is no.

       GSSAPIStrictAcceptorCheck
               Determines whether to be strict about the identity of the GSSAPI
               acceptor a client authenticates against.  If set to yes then the
               client must authenticate against the host service on the current
               hostname.  If set to no then the client may authenticate against
               any service key stored in the machine's default store.  This fa-
               cility is provided to assist with operation on multi  homed  ma-
               chines.  The default is yes.

       GSSAPIStoreCredentialsOnRekey
               Controls whether the user's GSSAPI credentials should be updated
               following  a  successful connection rekeying. This option can be
               used to accepted renewed or updated credentials from a  compati-
               ble client. The default is “no”.

               For  this  to  work GSSAPIKeyExchange needs to be enabled in the
               server and also used by the client.

       GSSAPIKexAlgorithms
               The list of key exchange algorithms that are accepted by  GSSAPI
               key exchange. Possible values are

                  gss-gex-sha1-,
                  gss-group1-sha1-,
                  gss-group14-sha1-,
                  gss-group14-sha256-,
                  gss-group16-sha512-,
                  gss-nistp256-sha256-,
                  gss-curve25519-sha256-

               The                          default                          is
               “gss-group14-sha256-,gss-group16-sha512-,gss-nistp256-sha256-,gss-curve25519-sha256-,gss-gex-sha1-,gss-group14-sha1-”.
               This option only applies to connections using GSSAPI.

       HostbasedAcceptedAlgorithms
               Specifies the signature algorithms that  will  be  accepted  for
               hostbased  authentication as a list of comma-separated patterns.
               Alternately if the specified list begins with a  ‘+’  character,
               then  the specified signature algorithms will be appended to the
               default set instead of replacing them.  If  the  specified  list
               begins  with a ‘-’ character, then the specified signature algo-
               rithms (including wildcards) will be removed  from  the  default
               set  instead  of  replacing  them.  If the specified list begins
               with a ‘^’ character, then the  specified  signature  algorithms
               will  be placed at the head of the default set.  The default for
               this option is:

                  ssh-ed25519-cert-v01@openssh.com,
                  ecdsa-sha2-nistp256-cert-v01@openssh.com,
                  ecdsa-sha2-nistp384-cert-v01@openssh.com,
                  ecdsa-sha2-nistp521-cert-v01@openssh.com,
                  sk-ssh-ed25519-cert-v01@openssh.com,
                  sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
                  rsa-sha2-512-cert-v01@openssh.com,
                  rsa-sha2-256-cert-v01@openssh.com,
                  ssh-ed25519,
                  ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
                  sk-ssh-ed25519@openssh.com,
                  sk-ecdsa-sha2-nistp256@openssh.com,
                  rsa-sha2-512,rsa-sha2-256

               The list of available signature algorithms may also be  obtained
               using  "ssh  -Q HostbasedAcceptedAlgorithms".  This was formerly
               named HostbasedAcceptedKeyTypes.

       HostbasedAuthentication
               Specifies whether rhosts or /etc/hosts.equiv authentication  to-
               gether  with successful public key client host authentication is
               allowed (host-based authentication).  The default is no.

       HostbasedUsesNameFromPacketOnly
               Specifies whether or not the server will attempt  to  perform  a
               reverse  name  lookup  when  matching the name in the ~/.shosts,
               ~/.rhosts,      and      /etc/hosts.equiv      files      during
               HostbasedAuthentication.   A  setting  of yes means that sshd(8)
               uses the name supplied by the client rather than  attempting  to
               resolve the name from the TCP connection itself.  The default is
               no.

       HostCertificate
               Specifies a file containing a public host certificate.  The cer-
               tificate's  public  key  must  match  a private host key already
               specified by HostKey.  The default behaviour of sshd(8)  is  not
               to load any certificates.

       HostKey
               Specifies a file containing a private host key used by SSH.  The
               defaults             are            /etc/ssh/ssh_host_ecdsa_key,
               /etc/ssh/ssh_host_ed25519_key and /etc/ssh/ssh_host_rsa_key.

               Note  that  sshd(8)  will  refuse  to  use  a  file  if  it   is
               group/world-accessible and that the HostKeyAlgorithms option re-
               stricts which of the keys are actually used by sshd(8).

               It is possible to have multiple host key files.  It is also pos-
               sible  to  specify  public host key files instead.  In this case
               operations  on  the  private  key  will  be  delegated   to   an
               ssh-agent(1).

       HostKeyAgent
               Identifies  the  UNIX-domain  socket used to communicate with an
               agent that has access to the private host keys.  If  the  string
               "SSH_AUTH_SOCK" is specified, the location of the socket will be
               read from the SSH_AUTH_SOCK environment variable.

       HostKeyAlgorithms
               Specifies  the host key signature algorithms that the server of-
               fers.  The default for this option is:

                  ssh-ed25519-cert-v01@openssh.com,
                  ecdsa-sha2-nistp256-cert-v01@openssh.com,
                  ecdsa-sha2-nistp384-cert-v01@openssh.com,
                  ecdsa-sha2-nistp521-cert-v01@openssh.com,
                  sk-ssh-ed25519-cert-v01@openssh.com,
                  sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
                  rsa-sha2-512-cert-v01@openssh.com,
                  rsa-sha2-256-cert-v01@openssh.com,
                  ssh-ed25519,
                  ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
                  sk-ssh-ed25519@openssh.com,
                  sk-ecdsa-sha2-nistp256@openssh.com,
                  rsa-sha2-512,rsa-sha2-256

               The list of available signature algorithms may also be  obtained
               using "ssh -Q HostKeyAlgorithms".

       IgnoreRhosts
               Specifies  whether  to ignore per-user .rhosts and .shosts files
               during      HostbasedAuthentication.       The       system-wide
               /etc/hosts.equiv  and  /etc/ssh/shosts.equiv  are still used re-
               gardless of this setting.

               Accepted values are yes (the default)  to  ignore  all  per-user
               files,  shosts-only  to  allow  the use of .shosts but to ignore
               .rhosts or no to allow both .shosts and rhosts.

       IgnoreUserKnownHosts
               Specifies   whether   sshd(8)   should   ignore    the    user's
               ~/.ssh/known_hosts  during  HostbasedAuthentication and use only
               the system-wide known hosts file /etc/ssh/ssh_known_hosts.   The
               default is “no”.

       Include
               Include the specified configuration file(s).  Multiple pathnames
               may be specified and each pathname may contain glob(7) wildcards
               that  will  be  expanded  and processed in lexical order.  Files
               without absolute paths  are  assumed  to  be  in  /etc/ssh.   An
               Include  directive  may  appear  inside a Match block to perform
               conditional inclusion.

       IPQoS   Specifies the Differentiated  Services  Field  Codepoint  (DSCP)
               value for the connection.  Accepted values are af11, af12, af13,
               af21,  af22, af23, af31, af32, af33, af41, af42, af43, cs0, cs1,
               cs2, cs3, cs4, cs5, cs6, cs7, ef, le, a numeric value,  or  none
               to  use  the operating system default.  This option may take one
               or two arguments, separated by whitespace.  If one  argument  is
               specified,  it  is used as the packet class unconditionally.  If
               two values are specified, the first  is  automatically  selected
               for interactive sessions and the second for non-interactive ses-
               sions.  The default is ef (Expedited Forwarding) for interactive
               sessions and cs1 (Lower Effort) for non-interactive sessions.

       KbdInteractiveAuthentication
               Specifies  whether to allow keyboard-interactive authentication.
               The default is yes.  The argument to this keyword must be yes or
               no.  ChallengeResponseAuthentication is a deprecated  alias  for
               this.

       KerberosAuthentication
               Specifies   whether  the  password  provided  by  the  user  for
               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.   The  de-
               fault is no.

       KerberosGetAFSToken
               If  AFS  is active and the user has a Kerberos 5 TGT, attempt to
               acquire an AFS token before accessing the user's home directory.
               The default is no.

       KerberosOrLocalPasswd
               If password authentication through Kerberos fails then the pass-
               word will be validated via any additional local  mechanism  such
               as /etc/passwd.  The default is yes.

       KerberosTicketCleanup
               Specifies  whether  to  automatically  destroy the user's ticket
               cache file on logout.  The default is yes.

       KexAlgorithms
               Specifies the permitted KEX (Key Exchange) algorithms  that  the
               server  will offer to clients.  The ordering of this list is not
               important, as the client specifies the preference order.  Multi-
               ple algorithms must be comma-separated.

               If the specified list begins with  a  ‘+’  character,  then  the
               specified algorithms will be appended to the default set instead
               of  replacing  them.   If  the  specified list begins with a ‘-’
               character, then the specified algorithms  (including  wildcards)
               will  be removed from the default set instead of replacing them.
               If the specified list begins with  a  ‘^’  character,  then  the
               specified  algorithms  will be placed at the head of the default
               set.

               The supported algorithms are:

                     curve25519-sha256
                     curve25519-sha256@libssh.org
                     diffie-hellman-group1-sha1
                     diffie-hellman-group14-sha1
                     diffie-hellman-group14-sha256
                     diffie-hellman-group16-sha512
                     diffie-hellman-group18-sha512
                     diffie-hellman-group-exchange-sha1
                     diffie-hellman-group-exchange-sha256
                     ecdh-sha2-nistp256
                     ecdh-sha2-nistp384
                     ecdh-sha2-nistp521
                     mlkem768x25519-sha256
                     sntrup761x25519-sha512
                     sntrup761x25519-sha512@openssh.com

               The default is:

                     mlkem768x25519-sha256,
                     sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,
                     curve25519-sha256,curve25519-sha256@libssh.org,
                     ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521

               The list of supported key exchange algorithms may  also  be  ob-
               tained using "ssh -Q KexAlgorithms".

       ListenAddress
               Specifies  the  local  addresses  sshd(8) should listen on.  The
               following forms may be used:

                     ListenAddress hostname|address [rdomain domain]
                     ListenAddress hostname:port [rdomain domain]
                     ListenAddress IPv4_address:port [rdomain domain]
                     ListenAddress [hostname|address]:port [rdomain domain]

               The optional rdomain qualifier requests sshd(8) listen in an ex-
               plicit routing domain.  If port is not specified, sshd will lis-
               ten on the address and all Port options specified.  The  default
               is to listen on all local addresses on the current default rout-
               ing domain.  Multiple ListenAddress options are permitted.

               On  Linux, routing domains are implemented using Virtual Routing
               and  Forwarding  domains  (VRFs);  for  more  information,   see
               ip-vrf(8).

       LoginGraceTime
               The  server disconnects after this time if the user has not suc-
               cessfully logged in.  If the value is 0, there is no time limit.
               The default is 120 seconds.

       LogLevel
               Gives the verbosity level that is  used  when  logging  messages
               from  sshd(8).   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 recom-
               mended.

       LogVerbose
               Specify one or more overrides to LogLevel.  An override consists
               of one or more pattern lists that matches the source file, func-
               tion and line number to force detailed logging for.   For  exam-
               ple, an override pattern of:

                     kex.c:*:1000,*:kex_exchange_identification():*,packet.c:*

               would enable detailed logging for line 1000 of kex.c, everything
               in  the  kex_exchange_identification() function, and all code in
               the packet.c file.  This option is intended for debugging and no
               overrides are enabled by default.

       MACs    Specifies the available MAC (message authentication code)  algo-
               rithms.   The  MAC  algorithm is used for data integrity protec-
               tion.  Multiple algorithms  must  be  comma-separated.   If  the
               specified  list  begins with a ‘+’ character, then the specified
               algorithms will be appended to the default set  instead  of  re-
               placing  them.   If the specified list begins with a ‘-’ charac-
               ter, then the specified algorithms (including wildcards) will be
               removed from the default set instead of replacing them.  If  the
               specified  list  begins with a ‘^’ character, then the specified
               algorithms will be placed at the head of the default set.

               The algorithms that contain "-etm" calculate the MAC  after  en-
               cryption  (encrypt-then-mac).   These  are  considered safer and
               their use recommended.  The supported MACs are:

                     hmac-md5
                     hmac-md5-96
                     hmac-sha1
                     hmac-sha1-96
                     hmac-sha2-256
                     hmac-sha2-512
                     umac-64@openssh.com
                     umac-128@openssh.com
                     hmac-md5-etm@openssh.com
                     hmac-md5-96-etm@openssh.com
                     hmac-sha1-etm@openssh.com
                     hmac-sha1-96-etm@openssh.com
                     hmac-sha2-256-etm@openssh.com
                     hmac-sha2-512-etm@openssh.com
                     umac-64-etm@openssh.com
                     umac-128-etm@openssh.com

               The default is:

                     umac-64-etm@openssh.com,umac-128-etm@openssh.com,
                     hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
                     hmac-sha1-etm@openssh.com,
                     umac-64@openssh.com,umac-128@openssh.com,
                     hmac-sha2-256,hmac-sha2-512,hmac-sha1

               The list of available MAC algorithms may also be obtained  using
               "ssh -Q mac".

       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, un-
               til either another Match line or the end of the file.  If a key-
               word  appears  in multiple Match blocks that are satisfied, only
               the first instance of the keyword is applied.

               The arguments to Match are one or more criteria-pattern pairs or
               one of the single token criteria: All, which matches all  crite-
               ria, or Invalid-User, which matches when the requested user-name
               does  not  match  any known account.  The available criteria are
               User, Group, Host, LocalAddress,  LocalPort,  Version,  RDomain,
               and  Address  (with  RDomain  representing the routing domain on
               which the connection was received; see ip-vrf(8)).

               The match patterns may consist of single entries or  comma-sepa-
               rated  lists and may use the wildcard and negation operators de-
               scribed in the “PATTERNS” section of ssh_config(5).

               The patterns in an Address criteria may additionally contain ad-
               dresses  to  match  in  CIDR  address/masklen  format,  such  as
               192.0.2.0/24  or  2001:db8::/32.  Note that the mask length pro-
               vided must be consistent with the address - it is  an  error  to
               specify  a  mask  length that is too long for the address or one
               with bits set in this host portion of the address.  For example,
               192.0.2.0/33 and 192.0.2.0/8, respectively.

               The Version  keyword  matches  against  the  version  string  of
               sshd(8), for example “OpenSSH_10.0”.

               Only  a  subset of keywords may be used on the lines following a
               Match    keyword.     Available    keywords    are    AcceptEnv,
               AllowAgentForwarding,  AllowGroups,  AllowStreamLocalForwarding,
               AllowTcpForwarding,      AllowUsers,      AuthenticationMethods,
               AuthorizedKeysCommand,                AuthorizedKeysCommandUser,
               AuthorizedKeysFile,                 AuthorizedPrincipalsCommand,
               AuthorizedPrincipalsCommandUser,       AuthorizedPrincipalsFile,
               Banner, CASignatureAlgorithms, ChannelTimeout,  ChrootDirectory,
               ClientAliveCountMax, ClientAliveInterval, DenyGroups, DenyUsers,
               DisableForwarding,  ExposeAuthInfo,  ForceCommand, GatewayPorts,
               GSSAPIAuthentication,               HostbasedAcceptedAlgorithms,
               HostbasedAuthentication,        HostbasedUsesNameFromPacketOnly,
               IgnoreRhosts,  Include,   IPQoS,   KbdInteractiveAuthentication,
               KerberosAuthentication,   LogLevel,  MaxAuthTries,  MaxSessions,
               PAMServiceName,  PasswordAuthentication,   PermitEmptyPasswords,
               PermitListen,     PermitOpen,     PermitRootLogin,    PermitTTY,
               PermitTunnel,      PermitUserRC,       PubkeyAcceptedAlgorithms,
               PubkeyAuthentication,    PubkeyAuthOptions,    RefuseConnection,
               RekeyLimit,    RevokedKeys,     SetEnv,     StreamLocalBindMask,
               StreamLocalBindUnlink,                        TrustedUserCAKeys,
               UnusedConnectionTimeout,  X11DisplayOffset,  X11Forwarding   and
               X11UseLocalhost.

       MaxAuthTries
               Specifies  the maximum number of authentication attempts permit-
               ted per connection.  Once the number of  failures  reaches  half
               this value, additional failures are logged.  The default is 6.

       MaxSessions
               Specifies  the  maximum number of open shell, login or subsystem
               (e.g. sftp) sessions permitted per network connection.  Multiple
               sessions may be established by clients that  support  connection
               multiplexing.  Setting MaxSessions to 1 will effectively disable
               session  multiplexing,  whereas setting it to 0 will prevent all
               shell, login and subsystem sessions while still permitting  for-
               warding.  The default is 10.

       MaxStartups
               Specifies  the maximum number of concurrent unauthenticated con-
               nections to the SSH  daemon.   Additional  connections  will  be
               dropped  until authentication succeeds or the LoginGraceTime ex-
               pires for a connection.  The default is 10:30:100.

               Alternatively, random early drop can be  enabled  by  specifying
               the   three   colon   separated   values  start:rate:full  (e.g.
               "10:30:60").  sshd(8) 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  unau-
               thenticated connections reaches full (60).

       ModuliFile
               Specifies  the  moduli(5)  file that contains the Diffie-Hellman
               groups used  for  the  “diffie-hellman-group-exchange-sha1”  and
               “diffie-hellman-group-exchange-sha256”   key  exchange  methods.
               The default is /etc/ssh/moduli.

       PAMServiceName
               Specifies the service name  used  for  Pluggable  Authentication
               Modules (PAM) authentication, authorisation and session controls
               when UsePAM is enabled.  The default is sshd.

       PasswordAuthentication
               Specifies  whether  password authentication is allowed.  The de-
               fault is yes.

       PermitEmptyPasswords
               When password authentication is allowed,  it  specifies  whether
               the server allows login to accounts with empty password strings.
               The default is no.

       PermitListen
               Specifies  the  addresses/ports  on which a remote TCP port for-
               warding may listen.  The listen specification must be one of the
               following forms:

                     PermitListen port
                     PermitListen host:port

               Multiple permissions may be specified by  separating  them  with
               whitespace.   An  argument  of any can be used to remove all re-
               strictions and permit any listen requests.  An argument of  none
               can  be used to prohibit all listen requests.  The host name may
               contain wildcards  as  described  in  the  PATTERNS  section  in
               ssh_config(5).   The wildcard ‘*’ can also be used in place of a
               port number to allow all ports.  By default all port  forwarding
               listen  requests  are permitted.  Note that the GatewayPorts op-
               tion may further restrict which addresses may  be  listened  on.
               Note  also that ssh(1) will request a listen host of “localhost”
               if no listen host was specifically requested, and this  name  is
               treated   differently   to   explicit   localhost  addresses  of
               “127.0.0.1” and “::1”.

       PermitOpen
               Specifies the destinations to which TCP port forwarding is  per-
               mitted.  The forwarding specification must be one of the follow-
               ing forms:

                     PermitOpen host:port
                     PermitOpen IPv4_addr:port
                     PermitOpen [IPv6_addr]:port

               Multiple  forwards  may  be  specified  by  separating them with
               whitespace.  An argument of any can be used to  remove  all  re-
               strictions  and  permit any forwarding requests.  An argument of
               none can be used to prohibit all forwarding requests.  The wild-
               card ‘*’ can be used for host or port  to  allow  all  hosts  or
               ports  respectively.   Otherwise, no pattern matching or address
               lookups are performed on supplied names.  By  default  all  port
               forwarding requests are permitted.

       PermitRootLogin
               Specifies  whether  root  can log in using ssh(1).  The argument
               must be yes,  prohibit-password,  forced-commands-only,  or  no.
               The default is prohibit-password.

               If  this  option  is set to prohibit-password (or its deprecated
               alias, without-password), password and keyboard-interactive  au-
               thentication are 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 tak-
               ing 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.

       PermitTTY
               Specifies  whether  pty(4) allocation is permitted.  The default
               is yes.

       PermitTunnel
               Specifies whether tun(4) device forwarding is allowed.  The  ar-
               gument  must  be  yes, point-to-point (layer 3), ethernet (layer
               2), or no.   Specifying  yes  permits  both  point-to-point  and
               ethernet.  The default is no.

               Independent  of  this  setting,  the permissions of the selected
               tun(4) device must allow access to the user.

       PermitUserEnvironment
               Specifies whether ~/.ssh/environment and environment= options in
               ~/.ssh/authorized_keys are processed by sshd(8).  Valid  options
               are yes, no or a pattern-list specifying which environment vari-
               able  names to accept (for example "LANG,LC_*").  The default is
               no.  Enabling environment processing may enable users to  bypass
               access restrictions in some configurations using mechanisms such
               as LD_PRELOAD.

       PermitUserRC
               Specifies  whether  any ~/.ssh/rc file is executed.  The default
               is yes.

       PerSourceMaxStartups
               Specifies the number of unauthenticated connections allowed from
               a given source address, or “none” if there is  no  limit.   This
               limit is applied in addition to MaxStartups, whichever is lower.
               The default is none.

       PerSourceNetBlockSize
               Specifies  the number of bits of source address that are grouped
               together for the purposes of applying PerSourceMaxStartups  lim-
               its.  Values for IPv4 and optionally IPv6 may be specified, sep-
               arated  by a colon.  The default is 32:128, which means each ad-
               dress is considered individually.

       PerSourcePenalties
               Controls penalties for various conditions that may represent at-
               tacks on sshd(8).  If a penalty is  enforced  against  a  client
               then  its  source address and any others in the same network, as
               defined by PerSourceNetBlockSize, will be refused connection for
               a period.

               A penalty doesn't affect concurrent connections in progress, but
               multiple penalties from the same source from concurrent  connec-
               tions  will  accumulate  up to a maximum.  Conversely, penalties
               are not applied until a minimum threshold time has been  accumu-
               lated.

               Penalties  are  enabled  by  default  with  the default settings
               listed below but may disabled using the  no  keyword.   The  de-
               faults  may  be overridden by specifying one or more of the key-
               words below, separated by whitespace.  All keywords accept argu-
               ments, e.g. "crash:2m".

               crash:duration
                       Specifies how long to refuse clients that cause a  crash
                       of sshd(8) (default: 90s).

               authfail:duration
                       Specifies how long to refuse clients that disconnect af-
                       ter  making  one or more unsuccessful authentication at-
                       tempts (default: 5s).

               refuseconnection:duration
                       Specifies how long to refuse clients that were  adminis-
                       tratively prohibited connection via the RefuseConnection
                       option (default: 10s).

               noauth:duration
                       Specifies  how  long  to  refuse clients that disconnect
                       without attempting authentication (default:  1s).   This
                       timeout  should  be used cautiously otherwise it may pe-
                       nalise legitimate scanning tools such as ssh-keyscan(1).

               grace-exceeded:duration
                       Specifies how long to refuse clients that  fail  to  au-
                       thenticate after LoginGraceTime (default: 10s).

               max:duration
                       Specifies  the  maximum time a particular source address
                       range will be refused access for  (default:  10m).   Re-
                       peated penalties will accumulate up to this maximum.

               min:duration
                       Specifies  the  minimum  penalty that must accrue before
                       enforcement begins (default: 15s).

               max-sources4:number, max-sources6:number
                       Specifies the maximum number of client IPv4 and IPv6 ad-
                       dress ranges to track for penalties (default: 65536  for
                       both).

               overflow:mode
                       Controls  how  the  server  behaves when max-sources4 or
                       max-sources6  is  exceeded.   There  are  two  operating
                       modes:  deny-all,  which denies all incoming connections
                       other than those exempted via PerSourcePenaltyExemptList
                       until a penalty expires, and  permissive,  which  allows
                       new  connections  by  removing  existing penalties early
                       (default: permissive).  Note that client penalties below
                       the min threshold count  against  the  total  number  of
                       tracked  penalties.  IPv4 and IPv6 addresses are tracked
                       separately, so an overflow in one will  not  affect  the
                       other.

               overflow6:mode
                       Allows specifying a different overflow mode for IPv6 ad-
                       dresses.   The  default it to use the same overflow mode
                       as was specified for IPv4.

       PerSourcePenaltyExemptList
               Specifies a comma-separated list of  addresses  to  exempt  from
               penalties.   This  list  may  contain  wildcards  and  CIDR  ad-
               dress/masklen ranges.  Note that the mask length  provided  must
               be  consistent  with  the  address - it is an error to specify a
               mask length that is too long for the address or  one  with  bits
               set   in  this  host  portion  of  the  address.   For  example,
               192.0.2.0/33 and 192.0.2.0/8, respectively.  The default is  not
               to exempt any addresses.

       PidFile
               Specifies  the file that contains the process ID of the SSH dae-
               mon, or none to not write one.  The default is /run/sshd.pid.

       Port    Specifies the port number that sshd(8) listens on.  The  default
               is  22.   Multiple options of this type are permitted.  See also
               ListenAddress.

       PrintLastLog
               Specifies whether sshd(8) should print the date and time of  the
               last  user login when a user logs in interactively.  The default
               is yes.

       PrintMotd
               Specifies whether sshd(8) 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.

       PubkeyAcceptedAlgorithms
               Specifies the signature algorithms that  will  be  accepted  for
               public key authentication as a list of comma-separated patterns.
               Alternately  if  the specified list begins with a ‘+’ character,
               then the specified algorithms will be appended  to  the  default
               set  instead  of  replacing  them.  If the specified list begins
               with a ‘-’ character, then the specified  algorithms  (including
               wildcards)  will  be removed from the default set instead of re-
               placing them.  If the specified list begins with a  ‘^’  charac-
               ter, then the specified algorithms will be placed at the head of
               the default set.  The default for this option is:

                  ssh-ed25519-cert-v01@openssh.com,
                  ecdsa-sha2-nistp256-cert-v01@openssh.com,
                  ecdsa-sha2-nistp384-cert-v01@openssh.com,
                  ecdsa-sha2-nistp521-cert-v01@openssh.com,
                  sk-ssh-ed25519-cert-v01@openssh.com,
                  sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
                  rsa-sha2-512-cert-v01@openssh.com,
                  rsa-sha2-256-cert-v01@openssh.com,
                  ssh-ed25519,
                  ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
                  sk-ssh-ed25519@openssh.com,
                  sk-ecdsa-sha2-nistp256@openssh.com,
                  rsa-sha2-512,rsa-sha2-256

               The  list of available signature algorithms may also be obtained
               using "ssh -Q PubkeyAcceptedAlgorithms".

       PubkeyAuthOptions
               Sets one or more public key authentication  options.   The  sup-
               ported keywords are: none (the default; indicating no additional
               options are enabled), touch-required and verify-required.

               The touch-required option causes public key authentication using
               a  FIDO authenticator algorithm (i.e. ecdsa-sk or ed25519-sk) to
               always require the signature to attest that a physically present
               user explicitly confirmed the authentication (usually by  touch-
               ing the authenticator).  By default, sshd(8) requires user pres-
               ence  unless  overridden  with  an  authorized_keys option.  The
               touch-required flag disables this override.

               The verify-required option requires a FIDO key signature  attest
               that the user was verified, e.g. via a PIN.

               Neither  the  touch-required or verify-required options have any
               effect for other, non-FIDO, public key types.

       PubkeyAuthentication
               Specifies whether public key authentication is allowed.  The de-
               fault is yes.

       RefuseConnection
               Indicates that sshd(8) should unconditionally terminate the con-
               nection.   Additionally,  a  refuseconnection  penalty  may   be
               recorded    against    the   source   of   the   connection   if
               PerSourcePenalties are enabled.  This option is only really use-
               ful in a Match block.

       RekeyLimit
               Specifies the maximum amount of data that may be transmitted  or
               received before the session key is renegotiated, optionally fol-
               lowed  by a maximum amount of time that may pass before the ses-
               sion key is renegotiated.  The first argument  is  specified  in
               bytes  and  may  have  a  suffix of ‘K’, ‘M’, or ‘G’ to indicate
               Kilobytes, Megabytes, or Gigabytes, respectively.   The  default
               is between ‘1G’ and ‘4G’, depending on the cipher.  The optional
               second  value  is  specified  in  seconds and may use any of the
               units documented in the “TIME  FORMATS”  section.   The  default
               value  for RekeyLimit is default none, which means that rekeying
               is performed after the cipher's default amount of data has  been
               sent or received and no time based rekeying is done.

       RequiredRSASize
               Specifies  the  minimum RSA key size (in bits) that sshd(8) will
               accept.  User and host-based authentication  keys  smaller  than
               this  limit  will  be  refused.  The default is 1024 bits.  Note
               that this limit may only be raised from the default.

       RevokedKeys
               Specifies revoked public keys file, or  none  to  not  use  one.
               Keys  listed in this file will be refused for public key authen-
               tication.  Note that if this file is not readable,  then  public
               key  authentication  will be refused for all users.  Keys may be
               specified as a text file, listing one public key per line, or as
               an  OpenSSH  Key  Revocation  List   (KRL)   as   generated   by
               ssh-keygen(1).   For more information on KRLs, see the KEY REVO-
               CATION LISTS section in ssh-keygen(1).

       SecurityKeyProvider
               Specifies a path to a library that will  be  used  when  loading
               FIDO  authenticator-hosted keys, overriding the default of using
               the built-in USB HID support.

       SetEnv  Specifies one or more environment variables to set in child ses-
               sions started by sshd(8) as “NAME=VALUE”.  The environment value
               may be quoted (e.g. if it contains whitespace characters).   En-
               vironment  variables set by SetEnv override the default environ-
               ment and any variables specified by the user  via  AcceptEnv  or
               PermitUserEnvironment.

       SshdAuthPath
               Overrides  the  default path to the sshd-auth binary that is in-
               voked  to  complete  user  authentication.    The   default   is
               /usr/lib/openssh/sshd-auth.   This option is intended for use by
               tests.

       SshdSessionPath
               Overrides the default path to the sshd-session  binary  that  is
               invoked   to   handle   each   connection.    The   default   is
               /usr/lib/openssh/sshd-session.  This option is intended for  use
               by tests.

       StreamLocalBindMask
               Sets  the octal file creation mode mask (umask) used when creat-
               ing a Unix-domain socket file for local or remote port  forward-
               ing.  This option is only used for port forwarding to a Unix-do-
               main socket file.

               The  default  value  is 0177, which creates a Unix-domain socket
               file that is readable and writable only by the owner.  Note that
               not all operating systems honor the  file  mode  on  Unix-domain
               socket files.

       StreamLocalBindUnlink
               Specifies  whether to remove an existing Unix-domain socket file
               for local or remote port forwarding before creating a  new  one.
               If  the  socket file already exists and StreamLocalBindUnlink is
               not enabled, sshd will be unable to  forward  the  port  to  the
               Unix-domain socket file.  This option is only used for port for-
               warding to a Unix-domain socket file.

               The argument must be yes or no.  The default is no.

       StrictModes
               Specifies  whether sshd(8) should check file modes and ownership
               of the user's files and home directory before  accepting  login.
               This  is  normally  desirable because novices sometimes acciden-
               tally leave their directory or files  world-writable.   The  de-
               fault is yes.  Note that this does not apply to ChrootDirectory,
               whose permissions and ownership are checked unconditionally.

       Subsystem
               Configures  an  external  subsystem (e.g. file transfer daemon).
               Arguments should be a subsystem name and  a  command  (with  op-
               tional arguments) to execute upon subsystem request.

               The  command  sftp-server implements the SFTP file transfer sub-
               system.

               Alternately the name internal-sftp implements an in-process SFTP
               server.  This may simplify configurations using  ChrootDirectory
               to force a different filesystem root on clients.  It accepts the
               same command line arguments as sftp-server and even though it is
               in-process,  settings  such as LogLevel or SyslogFacility do not
               apply to it and must be set explicitly via  command  line  argu-
               ments.

               By default no subsystems are defined.

       SyslogFacility
               Gives  the facility code that is used when logging messages from
               sshd(8).  The possible values are: DAEMON, USER,  AUTH,  LOCAL0,
               LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.  The de-
               fault is AUTH.

       TCPKeepAlive
               Specifies  whether the system should send TCP keepalive messages
               to the other side.  If they are sent, death of the connection or
               crash of one of the machines will be properly noticed.  However,
               this means that connections will die if the route is  down  tem-
               porarily,  and some people find it annoying.  On the other hand,
               if TCP keepalives are not sent, sessions may  hang  indefinitely
               on  the  server,  leaving "ghost" users and consuming server re-
               sources.

               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.

               This option was formerly called KeepAlive.

       TrustedUserCAKeys
               Specifies  a file containing public keys of certificate authori-
               ties that are trusted to sign user certificates for  authentica-
               tion,  or  none  to  not use one.  Keys are listed one per line;
               empty lines and comments starting with ‘#’ are  allowed.   If  a
               certificate  is presented for authentication and has its signing
               CA key listed in this file, then it may be used for  authentica-
               tion  for  any user listed in the certificate's principals list.
               Note that certificates that lack a list of principals  will  not
               be  permitted  for  authentication using TrustedUserCAKeys.  For
               more details on certificates, see the  CERTIFICATES  section  in
               ssh-keygen(1).

       UnusedConnectionTimeout
               Specifies  whether  and  how quickly sshd(8) should close client
               connections with no open channels.  Open channels include active
               shell, command execution or subsystem sessions,  connected  net-
               work,  socket,  agent or X11 forwardings.  Forwarding listeners,
               such as those from the ssh(1) -R flag,  are  not  considered  as
               open channels and do not prevent the timeout.  The timeout value
               is  specified  in seconds or may use any of the units documented
               in the “TIME FORMATS” section.

               Note that this timeout starts when the  client  connection  com-
               pletes user authentication but before the client has an opportu-
               nity  to  open  any channels.  Caution should be used when using
               short timeout values, as they may not  provide  sufficient  time
               for the client to request and open its channels before terminat-
               ing the connection.

               The  default  none  is to never expire connections for having no
               open channels.  This option may be useful  in  conjunction  with
               ChannelTimeout.

       UseDNS  Specifies  whether  sshd(8) should look up the remote host name,
               and to check that the resolved host name for the remote  IP  ad-
               dress maps back to the very same IP address.

               If  this  option  is set to no (the default) then only addresses
               and not host names may be used  in  ~/.ssh/authorized_keys  from
               and sshd_config Match Host directives.

       UsePAM  Enables  the  Pluggable Authentication Module interface.  If set
               to   yes   this   will   enable   PAM    authentication    using
               KbdInteractiveAuthentication and PasswordAuthentication in addi-
               tion  to  PAM  account and session module processing for all au-
               thentication types.

               Because PAM keyboard-interactive authentication  usually  serves
               an  equivalent  role to password authentication, you should dis-
               able          either          PasswordAuthentication          or
               KbdInteractiveAuthentication.

               If  UsePAM  is enabled, you will not be able to run sshd(8) as a
               non-root user.  The default is no.

       VersionAddendum
               Optionally specifies additional text to append to the SSH proto-
               col banner sent by the server upon connection.  The  default  is
               none.

       X11DisplayOffset
               Specifies  the  first display number available for sshd(8)'s X11
               forwarding.  This prevents sshd from interfering with  real  X11
               servers.  The default is 10.

       X11Forwarding
               Specifies  whether  X11  forwarding  is permitted.  The argument
               must be yes or no.  The default is no.

               When X11 forwarding is enabled, there may be additional exposure
               to the server and to client displays if the sshd(8)  proxy  dis-
               play  is  configured  to  listen  on  the  wildcard address (see
               X11UseLocalhost), though 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 re-
               questing 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.

       X11UseLocalhost
               Specifies whether sshd(8) 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 wild-
               card address.  The argument must be yes or no.  The  default  is
               yes.

       XAuthLocation
               Specifies  the full pathname of the xauth(1) program, or none to
               not use one.  The default is /usr/bin/xauth.

TIME FORMATS
       sshd(8) command-line arguments and configuration file options that spec-
       ify 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  fol-
       lowing:

             ⟨none⟩  seconds
             s | S   seconds
             m | M   minutes
             h | H   hours
             d | D   days
             w | W   weeks

       Each  member  of  the  sequence is added together to calculate the total
       time value.

       Time format examples:

             600     600 seconds (10 minutes)
             10m     10 minutes
             1h30m   1 hour 30 minutes (90 minutes)

TOKENS
       Arguments to some keywords can make use of tokens, which are expanded at
       runtime:

             %%    A literal ‘%’.
             %C    Identifies the connection endpoints, containing four  space-
                   separated values: client address, client port number, server
                   address, and server port number.
             %D    The  routing domain in which the incoming connection was re-
                   ceived.
             %F    The fingerprint of the CA key.
             %f    The fingerprint of the key or certificate.
             %h    The home directory of the user.
             %i    The key ID in the certificate.
             %K    The base64-encoded CA key.
             %k    The base64-encoded key or certificate for authentication.
             %s    The serial number of the certificate.
             %T    The type of the CA key.
             %t    The key or certificate type.
             %U    The numeric user ID of the target user.
             %u    The username.

       AuthorizedKeysCommand accepts the tokens %%, %C, %D, %f, %h, %k, %t, %U,
       and %u.

       AuthorizedKeysFile accepts the tokens %%, %h, %U, and %u.

       AuthorizedPrincipalsCommand accepts the tokens %%, %C, %D, %F,  %f,  %h,
       %i, %K, %k, %s, %T, %t, %U, and %u.

       AuthorizedPrincipalsFile accepts the tokens %%, %h, %U, and %u.

       ChrootDirectory accepts the tokens %%, %h, %U, and %u.

FILES
       /etc/ssh/sshd_config
               Contains  configuration  data  for sshd(8).  This file should be
               writable by root only, but it is recommended (though not  neces-
               sary) that it be world-readable.

SEE ALSO
       sftp-server(8), sshd(8)

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 removed many bugs, re-added newer features
       and created OpenSSH.  Markus Friedl contributed the support for SSH pro-
       tocol versions 1.5 and 2.0.  Niels Provos and Markus Friedl  contributed
       support for privilege separation.

Debian                         February 15, 2025                 SSHD_CONFIG(5)

Generated by dwww version 1.16 on Sun Jun 21 23:51:11 CEST 2026.