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.   is  not  consulted  for  groups matched by 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.  is not consulted for  users  matched
 by  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.   This  command  is only executed for valid users.  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  These  files  are  only checked for valid users.
 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.  This command is only
 executed for valid users.  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.  This file is only checked for valid users.
 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.  is not consulted
 for groups matched by 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.  is not consulted for users matched by 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 This
 directive does not limit other kinds of access that a  client  may  request
 via  their  connection,  such  as TCP, agent, socket or X11 forwarding.  If
 these are not desired,  then  they  must  be  explicitly  disabled,  either
 individually via their respective options or all together using the option.
 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  Accept  delegated  credentials  on  the server side.  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,        webauthn-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,     webauthn-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,
 webauthn-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,    webauthn-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.  Alternatively, random early drop
 can   be   enabled   by   specifying   the  three  colon  separated  values
 start:rate:full (e.g. "10:30:60").  The default is 10:30:100.  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  attempt
 to log in with an invalid user (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,        webauthn-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,   webauthn-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 This file
 may be consulted for each public key authentication attempt received by and
 its  contents  must be consistent at all times, therefore it should only be
 atomically replaced and  never  modified  in  place  while  the  server  is
 running.   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.  Tokens are expanded without quoting  or  escaping  of
 shell  characters.  It is the administrator's responsibility to ensure they
 are safe in the context of their use.   The  supported  tokens  in  are:  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.