packages icon
 reads configuration data from (or the file specified with  on  the  command
 line).   The  file  contains  keyword-argument 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.  The possible keywords and their meanings are as follows
 (note that keywords are case-insensitive and arguments are case-sensitive):
 Specifies what environment variables sent by the client will be copied into
 the session's See and in for how to configure the client.  The  environment
 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 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.
 Specifies which address family should be used by Valid arguments  are  (the
 default),   (use  IPv4  only),  or  (use  IPv6  only).   Specifies  whether
 forwarding  is  permitted.   The  default  is  Note  that  disabling  agent
 forwarding  does  not  improve  security unless users are also denied shell
 access, as they can always install their own forwarders.  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: See PATTERNS in  for  more  information  on  patterns.
 This  keyword  may appear multiple times in with each instance appending to
 the list.  Specifies whether StreamLocal (Unix-domain socket) forwarding is
 permitted.  The available options are (the default) or to allow StreamLocal
 forwarding, to prevent all StreamLocal forwarding, to allow local (from the
 perspective  of  forwarding  only or to allow remote forwarding only.  Note
 that disabling StreamLocal forwarding  does  not  improve  security  unless
 users  are  also  denied shell access, as they can always install their own
 forwarders.  Specifies whether TCP forwarding is permitted.  The  available
 options  are  (the  default) or to allow TCP forwarding, to prevent all TCP
 forwarding, to allow local (from the perspective of forwarding only  or  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.  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 address/masklen format.   The  allow/deny  users
 directives  are  processed in the following order: See PATTERNS in for more
 information on patterns.  This keyword may appear multiple  times  in  with
 each  instance appending to the list.  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  to  indicate  the
 default  behaviour  of  accepting any single authentication method.  If the
 default is overridden, then successful authentication  requires  completion
 of every method in at least one of these lists.  For example, would require
 the user to complete public key authentication, followed by either password
 or  keyboard interactive authentication.  Only methods that are next in one
 or more lists are offered at each stage, so for this example it  would  not
 be  possible  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  or  depending  on  the  server
 configuration.    For   example,   would   restrict   keyboard  interactive
 authentication to the device.  If the publickey method is listed more  than
 once,  verifies  that  keys that have been used successfully are not reused
 for  subsequent  authentications.    For   example,   requires   successful
 authentication   using   two   different   public  keys.   Note  that  each
 authentication method listed should  also  be  explicitly  enabled  in  the
 configuration.   The available authentication methods are: (used for access
 to password-less accounts when is enabled), and 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  accept the tokens described in the section.  If no arguments
 are specified then the username of the target user is  used.   The  program
 should  produce  on  standard  output zero or more lines of authorized_keys
 output (see in is tried after the usual files and will not be executed if a
 matching  key  is  found there.  By default, no is run.  Specifies the user
 under whose account the is run.  It is recommended to use a dedicated  user
 that  has  no other role on the host than running authorized keys commands.
 If is specified but is not, then will refuse to start.  Specifies the  file
 that  contains the public keys used for user authentication.  The format is
 described in the AUTHORIZED_KEYS FILE FORMAT section of  Arguments  to  may
 include  wildcards  and  accept the tokens described in the section.  After
 expansion, is taken to be an absolute path or one relative  to  the  user's
 home  directory.   Multiple  files  may be listed, separated by whitespace.
 Alternately this option may be set to to skip checking  for  user  keys  in
 files.   The default is Specifies a program to be used to generate the list
 of allowed certificate principals as per The program must be owned by root,
 not  writable  by  group  or  others  and  specified  by  an absolute path.
 Arguments to accept the tokens described in the section.  If  no  arguments
 are  specified  then  the username of the target user is used.  The program
 should produce on standard output zero or more lines of output.  If  either
 or is specified, then certificates offered by the client for authentication
 must contain a principal that is listed.  By default, no is run.  Specifies
 the  user  under  whose  account  the  is  run.  It is recommended to use a
 dedicated user that has no other role on the host than  running  authorized
 principals  commands.   If  is  specified  but  is not, then will refuse to
 start.  Specifies a file that lists principal names that are  accepted  for
 certificate authentication.  When using certificates signed by a key listed
 in 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  in  Empty  lines  and  comments
 starting  with  are ignored.  Arguments to may include wildcards and accept
 the tokens described in the section.  After expansion, is taken  to  be  an
 absolute path or one relative to the user's home directory.  The default is
 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 is only used when authentication proceeds using a CA listed in and  is
 not  consulted  for  certification  authorities  trusted via though the key
 option offers a similar facility (see for details).  The  contents  of  the
 specified  file  are  sent  to  the  remote  user  before authentication is
 allowed.  If the argument is then no banner is displayed.  By  default,  no
 banner is displayed.  Specifies which algorithms are allowed for signing of
 certificates 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.
 Specifies whether and how quickly should close inactive channels.  Timeouts
 are specified as one or more pairs separated by whitespace, where the  must
 be  the  special  keyword  or  a  channel  type  name  from the list below,
 optionally containing wildcard characters.  The timeout value is  specified
 in  seconds  or  may  use  any of the units documented in the section.  For
 example, would cause interactive sessions to terminate after  five  minutes
 of  inactivity.   Specifying  a zero value disables the inactivity timeout.
 The special  timeout  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: Open connections to Open TCP or  Unix
 socket  (respectively) connections that have been established from an local
 forwarding, i.e. or Open TCP or Unix socket (respectively) connections that
 have  been  established  to an listening on behalf of an remote forwarding,
 i.e.  The  interactive  main  session,  including  shell  session,  command
 execution,  etc.   Open  connections.   Open X11 forwarding sessions.  Note
 that in all the above cases,  terminating  an  inactive  session  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 inactivity.   Specifies  the  pathname  of  a  directory  to  to  after
 authentication.   At  session  startup  checks  that  all components of the
 pathname are root-owned directories which are  not  writable  by  group  or
 others.  After the chroot, changes the working directory to the user's home
 directory.  Arguments to accept the tokens described in the  section.   The
 must  contain  the  necessary  files  and directories to support the user's
 session.  For an interactive  session  this  requires  at  least  a  shell,
 typically  and basic nodes such as and 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 inside the chroot directory on  some  operating  systems  (see  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 cannot detect.  The  default  is  indicating  not  to  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 Sets the number of
 client alive messages which may be sent without 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  The  client  alive messages are sent through the encrypted
 channel and therefore will not be  spoofable.   The  TCP  keepalive  option
 enabled  by  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 is set to 15, and is left at the
 default, unresponsive SSH clients will be disconnected after  approximately
 45  seconds.   Setting  a  zero  disables  connection  termination.  Sets a
 timeout interval in seconds after which if no data has been  received  from
 the  client, 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.  Specifies whether compression is enabled
 after the user has authenticated successfully.  The  argument  must  be  (a
 legacy synonym for or The default is This keyword can be followed by a list
 of group name patterns, separated by spaces.  Login is disallowed 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: See PATTERNS in for
 more  information  on  patterns.  This keyword may appear multiple times in
 with each instance appending to the list.  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
 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
 address/masklen  format.   The allow/deny users directives are processed in
 the following order: See PATTERNS in  for  more  information  on  patterns.
 This  keyword  may appear multiple times in with each instance appending to
 the list.   Disables  all  forwarding  features,  including  X11,  TCP  and
 StreamLocal.   This  option  overrides all other forwarding-related options
 and may  simplify  restricted  configurations.   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  session  through  the  environment variable.  The default is
 Specifies the hash algorithm used when  logging  key  fingerprints.   Valid
 options  are:  and  The  default  is  Forces  the  execution of the command
 specified by ignoring any command supplied by the client  and  if  present.
 The  command is invoked by using the user's login shell with the -c option.
 This applies to shell, command, or subsystem execution.  It is most  useful
 inside a block.  The command originally supplied by the client is available
 in the environment variable.  Specifying a command of will force the use of
 an in-process SFTP server that requires no support files when used with The
 default is Specifies whether remote hosts are allowed to connect  to  ports
 forwarded for the client.  By default, binds remote port forwardings to the
 loopback address.  This prevents other  remote  hosts  from  connecting  to
 forwarded ports.  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  to  force  remote port forwardings to be
 available to the local host only, to force remote port forwardings to  bind
 to  the  wildcard  address, or to allow the client to select the address to
 which the forwarding is bound.   The  default  is  Specifies  whether  user
 authentication  based  on  GSSAPI  is  allowed.   The  default is Specifies
 whether to automatically destroy the user's credentials  cache  on  logout.
 The  default  is  Determines whether to be strict about the identity of the
 GSSAPI acceptor a client authenticates against.  If set to then the  client
 must authenticate against the host service on the current hostname.  If set
 to then the client may authenticate against any service key stored  in  the
 machine's  default  store.   This  facility  is  provided  to  assist  with
 operation on multi homed machines.  The default is 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 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 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 This was formerly named HostbasedAcceptedKeyTypes.  Specifies whether
 rhosts or /etc/hosts.equiv authentication together with  successful  public
 key client host authentication is allowed (host-based authentication).  The
 default is Specifies whether or not the server will attempt  to  perform  a
 reverse  name  lookup  when  matching  the  name  in the and files during A
 setting of means that uses the name supplied  by  the  client  rather  than
 attempting to resolve the name from the TCP connection itself.  The default
 is  Specifies  a  file  containing  a   public   host   certificate.    The
 certificate's public key must match a private host key already specified by
 The default behaviour of is not to load any certificates.  Specifies a file
 containing  a private host key used by SSH.  The defaults are and Note that
 will refuse to use a file if it  is  group/world-accessible  and  that  the
 option  restricts  which of the keys are actually used by It is possible to
 have multiple host key files.  It is also possible to specify  public  host
 key  files  instead.   In  this  case operations on the private key will be
 delegated to an Identifies the UNIX-domain socket used to communicate  with
 an  agent  that  has  access  to  the  private host keys.  If the string is
 specified, the location of the socket will be  read  from  the  environment
 variable.   Specifies  the  host  key  signature algorithms that the server
 offers.  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 Specifies whether to ignore per-user and  files  during  The
 system-wide and are still used regardless of this setting.  Accepted values
 are (the default) to ignore all per-user files, to allow the use of but  to
 ignore  or  to  allow  both  and Specifies whether should ignore the user's
 during and use only the system-wide known hosts file The default is Include
 the  specified  configuration file(s).  Multiple pathnames may be specified
 and each pathname may contain wildcards that will be expanded and processed
 in  lexical  order.   Files  without absolute paths are assumed to be in An
 directive may appear inside  a  block  to  perform  conditional  inclusion.
 Specifies  the  value  for  the  connection.  Accepted values are a numeric
 value, or 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 sessions.  The default is  (Expedited  Forwarding)  for
 interactive sessions and (the operating system default) for non-interactive
 sessions.  Specifies whether to allow keyboard-interactive  authentication.
 All  authentication styles from are supported.  The default is The argument
 to this keyword must be or is  a  deprecated  alias  for  this.   Specifies
 whether the password provided by the user for 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 default is 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 If
 password authentication through Kerberos fails then the  password  will  be
 validated  via  any  additional  local  mechanism  such  as  The default is
 Specifies whether to automatically destroy the user's ticket cache file  on
 logout.   The  default  is  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.
 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 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 obtained using Specifies the local addresses should listen  on.
 The  following forms may be used: The optional qualifier requests listen in
 an explicit routing domain.  If is not specified, sshd will listen  on  the
 address  and  all options specified.  The default is to listen on all local
 addresses on the current default  routing  domain.   Multiple  options  are
 permitted.   For  more  information  on  routing  domains,  see  The server
 disconnects after this time if the user has not successfully logged in.  If
 the value is 0, there is no time limit.  The default is 120 seconds.  Gives
 the verbosity level that is used when logging messages  from  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.   Specify
 one  or more overrides to An override consists of one or more pattern lists
 that matches the source file, function and line number  to  force  detailed
 logging     for.      For     example,     an    override    pattern    of:
 kex.c:*:1000,*:kex_exchange_identification():*,packet.c:*   would    enable
 detailed  logging for line 1000 of everything in the function, and all code
 in the file.  This option is intended for debugging and  no  overrides  are
 enabled  by  default.   Specifies the available MAC (message authentication
 code) algorithms.  The MAC algorithm is used for data integrity protection.
 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 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 algorithms that contain calculate the
 MAC after encryption (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   Introduces   a
 conditional  block.   If all of the criteria on the line are satisfied, the
 keywords on the following lines override those set in the global section of
 the  config  file,  until either another line or the end of the file.  If a
 keyword appears in multiple blocks  that  are  satisfied,  only  the  first
 instance  of  the  keyword  is  applied.   The arguments to are one or more
 criteria-pattern pairs or one of the single token criteria:  which  matches
 all  criteria, or which matches when the requested user-name does not match
 any known account.  The available criteria are and (with  representing  the
 on  which  the connection was received).  The match patterns may consist of
 single entries or comma-separated  lists  and  may  use  the  wildcard  and
 negation  operators described in the section of The patterns in an criteria
 may additionally contain addresses to match in CIDR address/masklen format,
 such  as 192.0.2.0/24 or 2001:db8::/32.  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  keyword  matches  against  the  version  string of for
 example Only a subset of keywords may be used  on  the  lines  following  a
 keyword.   Available  keywords  are  and  Specifies  the  maximum number of
 authentication attempts permitted  per  connection.   Once  the  number  of
 failures  reaches  half  this  value,  additional failures are logged.  The
 default is 6.  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 to 1 will effectively disable session multiplexing,
 whereas setting it to  0  will  prevent  all  shell,  login  and  subsystem
 sessions  while still permitting forwarding.  The default is 10.  Specifies
 the maximum number of concurrent unauthenticated  connections  to  the  SSH
 daemon.   Additional  connections  will  be  dropped  until  authentication
 succeeds or the expires  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").   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).   Specifies  the  file  that
 contains  the  Diffie-Hellman groups used for the and key exchange methods.
 The default is Specifies the service name used for Pluggable Authentication
 Modules  (PAM)  authentication,  authorisation and session controls when is
 enabled.  The default  is  Specifies  whether  password  authentication  is
 allowed.   The  default  is  When  password  authentication  is allowed, it
 specifies whether the server allows login to accounts with  empty  password
 strings.   The  default  is Specifies the addresses/ports on which a remote
 TCP port forwarding may listen.  The listen specification must  be  one  of
 the  following  forms:  Multiple permissions may be specified by separating
 them  with  whitespace.   An  argument  of  can  be  used  to  remove   all
 restrictions and permit any listen requests.  An argument of can be used to
 prohibit all listen requests.  The  host  name  may  contain  wildcards  as
 described in the PATTERNS section in 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 option may further restrict which
 addresses may be listened on.  Note also that will request a listen host of
 if  no  listen  host  was  specifically requested, and this name is treated
 differently  to  explicit  localhost  addresses  of   and   Specifies   the
 destinations  to  which  TCP  port forwarding is permitted.  The forwarding
 specification must be one of the following forms: Multiple forwards may  be
 specified  by  separating them with whitespace.  An argument of can be used
 to remove all restrictions and permit any forwarding requests.  An argument
 of  can  be  used to prohibit all forwarding requests.  The wildcard 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.  Specifies whether root
 can  log  in using The argument must be or The default is If this option is
 set  to  (or  its  deprecated  alias,  password  and   keyboard-interactive
 authentication  are disabled for root.  If this option is set to root login
 with public key authentication will be allowed, but only if the 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 root is not allowed to log in.
 Specifies whether  allocation  is  permitted.   The  default  is  Specifies
 whether  device  forwarding  is  allowed.   The argument must be (layer 3),
 (layer 2), or Specifying permits both and The  default  is  Independent  of
 this  setting,  the permissions of the selected device must allow access to
 the user.  Specifies whether and options in are processed by Valid  options
 are or a pattern-list specifying which environment variable names to accept
 (for example The default is  Enabling  environment  processing  may  enable
 users to bypass access restrictions in some configurations using mechanisms
 such as Specifies whether any file is executed.  The default  is  Specifies
 the  number  of  unauthenticated  connections  allowed  from a given source
 address, or if there is no limit.  This limit is  applied  in  addition  to
 whichever  is lower.  The default is Specifies the number of bits of source
 address  that  are  grouped  together  for   the   purposes   of   applying
 PerSourceMaxStartups  limits.   Values  for IPv4 and optionally IPv6 may be
 specified, separated by a colon.  The default is which means  each  address
 is considered individually.  Controls penalties for various conditions that
 may represent attacks on If a penalty is enforced against a client then its
 source  address  and  any others in the same network, as defined by 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 connections  will  accumulate  up  to  a  maximum.   Conversely,
 penalties  are  not  applied  until  a  minimum  threshold  time  has  been
 accumulated.  Penalties are enabled by default with  the  default  settings
 listed  below  but  may  disabled  using  the keyword.  The defaults may be
 overridden by specifying one or more of the keywords  below,  separated  by
 whitespace.   All  keywords  accept  arguments,  e.g. Specifies how long to
 refuse clients that cause a crash of Specifies how long to  refuse  clients
 that  disconnect  after  making  one  or  more  unsuccessful authentication
 attempts (default: 5s).  Specifies how long to  refuse  clients  that  were
 administratively  prohibited  connection  via  the  option  (default: 10s).
 Specifies how long to refuse clients  that  disconnect  without  attempting
 authentication  (default:  1s).   This  timeout  should  be used cautiously
 otherwise it may penalise legitimate scanning tools such as  Specifies  how
 long  to  refuse  clients  that  fail to authenticate after (default: 10s).
 Specifies the maximum time  a  particular  source  address  range  will  be
 refused  access  for (default: 10m).  Repeated penalties will accumulate up
 to this maximum.  Specifies the minimum penalty  that  must  accrue  before
 enforcement  begins (default: 15s).  Specifies the maximum number of client
 IPv4 and IPv6 address ranges to track for  penalties  (default:  65536  for
 both).  Controls how the server behaves when or is exceeded.  There are two
 operating modes: which denies all incoming  connections  other  than  those
 exempted  via  until a penalty expires, and which allows new connections by
 removing existing penalties early (default: permissive).  Note that  client
 penalties  below  the  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.  Allows specifying a different overflow
 mode for IPv6 addresses.  The default it to use the same overflow  mode  as
 was  specified  for IPv4.  Specifies a comma-separated list of addresses to
 exempt  from  penalties.   This  list  may  contain  wildcards   and   CIDR
 address/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.  Specifies the file that contains
 the process ID of the SSH daemon, or to not  write  one.   The  default  is
 Specifies  the  port  number that listens on.  The default is 22.  Multiple
 options of this type are permitted.   See  also  Specifies  whether  should
 print  the  date  and  time  of  the  last  user  login when a user logs in
 interactively.  The default is Specifies whether should print when  a  user
 logs  in  interactively.  (On some systems it is also printed by the shell,
 or equivalent.) The default is 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 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  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 Sets one or more public key
 authentication   options.    The  supported  keywords  are:  (the  default;
 indicating no additional options are enabled), and The option causes public
 key  authentication using a FIDO authenticator algorithm (i.e. or to always
 require the signature to attest that a physically present  user  explicitly
 confirmed  the  authentication (usually by touching the authenticator).  By
 default, requires user presence unless overridden with  an  authorized_keys
 option.   The  flag disables this override.  The option requires a FIDO key
 signature attest that the user was verified, e.g. via a PIN.   Neither  the
 or  options  have  any  effect  for  other,  non-FIDO,  public  key  types.
 Specifies whether public key authentication is  allowed.   The  default  is
 Indicates   that   should   unconditionally   terminate   the   connection.
 Additionally,  a  penalty  may  be  recorded  against  the  source  of  the
 connection  if  are enabled.  This option is only really useful in a block.
 Specifies the maximum amount of data that may be  transmitted  or  received
 before  the  session  key is renegotiated, optionally followed by a maximum
 amount of time that may pass before the session key is  renegotiated.   The
 first  argument  is  specified  in  bytes  and  may  have a suffix of or to
 indicate Kilobytes, Megabytes, or Gigabytes, respectively.  The default  is
 between  and  depending  on  the  cipher.   The  optional  second  value is
 specified in seconds and may  use  any  of  the  units  documented  in  the
 section.   The  default value for is 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.  Specifies the minimum RSA key size (in bits)
 that will accept.  User and host-based  authentication  keys  smaller  than
 this limit will be refused.  The default is bits.  Note that this limit may
 only be raised from the default.  Specifies revoked public keys file, or to
 not  use  one.   Keys  listed  in  this file will be refused for public key
 authentication.  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  For  more  information on KRLs, see the KEY
 REVOCATION LISTS section in Specifies an explicit routing  domain  that  is
 applied  after  authentication has completed.  The user session, as well as
 any forwarded or listening IP sockets, will be bound to this If the routing
 domain  is  set  to  then  the  domain in which the incoming connection was
 received will be applied.  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.   Specifies  one  or  more  environment
 variables  to set in child sessions started by as The environment value may
 be  quoted  (e.g.  if  it  contains  whitespace  characters).   Environment
 variables  set  by  override  the  default  environment  and  any variables
 specified by the user via or Overrides the default path to the binary  that
 is  invoked to complete user authentication.  The default is This option is
 intended for use by tests.  Overrides the default path to the  binary  that
 is  invoked  to  handle  each  connection.   The  default is This option is
 intended for use by tests.  Sets the octal file  creation  mode  mask  used
 when   creating  a  Unix-domain  socket  file  for  local  or  remote  port
 forwarding.  This option is only used for port forwarding to a  Unix-domain
 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.
 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 is not enabled, will be unable to forward  the  port  to
 the  Unix-domain socket file.  This option is only used for port forwarding
 to a Unix-domain socket file.  The argument  must  be  or  The  default  is
 Specifies whether 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 Note that this  does  not  apply  to  whose
 permissions  and  ownership  are  checked  unconditionally.   Configures an
 external subsystem (e.g. file transfer  daemon).   Arguments  should  be  a
 subsystem  name  and  a  command  (with optional arguments) to execute upon
 subsystem  request.   The  command  implements  the  SFTP   file   transfer
 subsystem.   Alternately  the  name  implements  an in-process SFTP server.
 This may simplify configurations using to force a different filesystem root
 on  clients.  It accepts the same command line arguments as and even though
 it is in-process, settings such as or do not apply to it and  must  be  set
 explicitly  via  command  line  arguments.   By  default  no subsystems are
 defined.  Gives the facility code that is used when logging  messages  from
 The  possible  values  are:  DAEMON,  USER,  AUTH,  LOCAL0, LOCAL1, LOCAL2,
 LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.  The default  is  AUTH.   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 temporarily, and some people find it  annoying.   On  the
 other  hand, if TCP keepalives are not sent, sessions may hang indefinitely
 on the server, leaving users and consuming server resources.   The  default
 is  (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 Specifies a file containing public keys of  certificate  authorities
 that  are  trusted  to sign user certificates for authentication, or 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
 authentication  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  For  more  details  on  certificates,  see  the
 CERTIFICATES section in Specifies whether  and  how  quickly  should  close
 client  connections  with  no  open channels.  Open channels include active
 shell, command execution or subsystem sessions, connected network,  socket,
 agent  or  X11  forwardings.   Forwarding listeners, such as those from the
 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 section.  Note that this timeout starts when  the  client
 connection  completes  user  authentication  but  before  the client has an
 opportunity 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  terminating  the  connection.   The
 default  is  to never expire connections for having no open channels.  This
 option may be useful in conjunction with Specifies whether should  look  up
 the  remote  host  name,  and  to check that the resolved host name for the
 remote IP address maps back to the very same IP address.  If this option is
 set  to (the default) then only addresses and not host names may be used in
 and directives.  Enables the Pluggable Authentication Module interface.  If
 set  to  this  will  enable PAM authentication using and in addition to PAM
 account  and  session  module  processing  for  all  authentication  types.
 Because   PAM   keyboard-interactive   authentication   usually  serves  an
 equivalent role to password authentication, you should disable either or If
 is enabled, you will not be able to run as a non-root user.  The default is
 Optionally specifies additional text to append to the SSH  protocol  banner
 sent  by  the  server  upon connection.  The default is Specifies the first
 display number available for  X11  forwarding.   This  prevents  sshd  from
 interfering  with  real X11 servers.  The default is 10.  Specifies whether
 X11 forwarding is permitted.  The argument must be or The default  is  When
 X11  forwarding  is enabled, there may be additional exposure to the server
 and to client displays if the proxy display is configured to listen on  the
 wildcard  address  (see  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 in 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 setting.  Note that disabling X11 forwarding  does  not
 prevent  users  from  forwarding  X11  traffic, as users can always install
 their own forwarders.  Specifies whether 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  environment variable to This prevents remote hosts
 from connecting to the proxy display.  However, some older X11 clients  may
 not  function  with  this configuration.  may be set to to specify that the
 forwarding server should be bound to the wildcard  address.   The  argument
 must be or The default is Specifies the full pathname of the program, or to
 not use one.  The default is command-line arguments and configuration  file
 options  that  specify  time may be expressed using a sequence of the form:
 where is a positive integer value and is  one  of  the  following:  seconds
 seconds  minutes  hours  days  weeks  Each  member of the sequence is added
 together to calculate the total time  value.   Time  format  examples:  600
 seconds (10 minutes) 10 minutes 1 hour 30 minutes (90 minutes) Arguments to
 some keywords can make use of tokens, which  are  expanded  at  runtime:  A
 literal   Identifies  the  connection  endpoints,  containing  four  space-
 separated values: client address, client port number, server  address,  and
 server  port  number.   The routing domain in which the incoming connection
 was received.  The fingerprint of the CA key.  The fingerprint of  the  key
 or  certificate.   The  home  directory  of  the  user.   The key ID in the
 certificate.   The  base64-encoded  CA  key.   The  base64-encoded  key  or
 certificate for authentication.  The serial number of the certificate.  The
 type of the CA key.  The key or certificate type.  The numeric user  ID  of
 the target user.  The username.  accepts the tokens %%, %C, %D, %f, %h, %k,
 %t, %U, and %u.  accepts the tokens %%, %h, %U, and %u.  accepts the tokens
 %%,  %C,  %D,  %F, %f, %h, %i, %K, %k, %s, %T, %t, %U, and %u.  accepts the
 tokens %%, %h, %U, and %u.  accepts the tokens %%, %h, %U, and %u.  accepts
 the token %D.  Contains configuration data for This file should be writable
 by root only, but it is recommended  (though  not  necessary)  that  it  be
 world-readable.   OpenSSH  is  a  derivative  of  the original and free ssh
 1.2.12 release by and  removed  many  bugs,  re-added  newer  features  and
 created OpenSSH.  contributed the support for SSH protocol versions 1.5 and
 2.0.  and contributed support for privilege separation.