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 the filesystem
 path used for forwarded sockets.  Sockets may be created in either a shared
 location  or  a  user-specific  directory.   User-specific  directories are
 specified by prefixing the path name with will ensure the directory  exists
 and  create  the  listening  socket directly in it.  Relative user-specific
 directory paths will be created relative to the user's  directory.   Shared
 directories  may  be  specified  by prefixing an absolute path name with In
 this case, a temporary subdirectory will be  created  under  the  specified
 directory  and the listening agent socket will be created in that.  accepts
 the tokens described in the section.  The  default  path  specification  is
 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, ssh-mldsa44-ed25519 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 Compression  applies  to  all  traffic
 that  flows over the SSH connection.  If untrusted traffic (such as an open
 port-forward) is permitted over the connection alongside  trusted  traffic,
 then  compression  may  leak  information about session contents.  For this
 reason, it is not recommended to enable compression  for  connections  that
 share  trusted  and  untrusted  traffic.  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 This option may not be
 effective  in  Windows  Active  Directory  environments.    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-mldsa44-ed25519-
 cert,    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,
 ssh-mldsa44-ed2551 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-mldsa44-ed25519-
 cert,   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,
 ssh-mldsa44-ed25519  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       mlkem768nistp256-sha256      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-mldsa44-ed25519-cert,    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,  ssh-mldsa44-
 ed25519 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.  The option  takes  a  numeric  argument
 separated  by  a  colon character, e.g. to specify the number of public key
 query attempts are permitted before  the  attempts  are  considered  failed
 authentications  that  count  against Public key queries are a SSH protocol
 mechanism that allow a client to test whether  a  server  accepts  a  given
 public  key  before  an actual authentication attempt, to avoid the need to
 enter PINs/key passphrases or touch FIDO authenticators unnecessarily.  The
 default is 6.  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 keepalive messages on TCP sockets it has
 opened.  If they are sent, failure of the connection or crash of one of the
 endpoints  may  be  more  promptly  detected.   However,  this  means  that
 connections  may  terminate  if  the  connection  is  suffers  a  transient
 disruption.   The  argument must be to enable TCP keepalive messages on the
 SSH transport connection to the client, which is an alias for to enable TCP
 keepalive  messages  on all sockets opened by including sockets created for
 X11 or port forwarding, or to disable TCP keepalive messages.  The  default
 is  See  also for a more robust connection failure detection mechanism that
 works at the SSH protocol level.  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
 Controls whether warnings are  logged  when  the  cryptographic  algorithms
 negotiated  for  the  connection are weak or otherwise recommended against.
 Warnings may be disabled by turning off a specific warning or by  disabling
 all warnings.  Warnings about connections that don't use a post-quantum key
 exchange may be disabled using the flag.  will disable all  warnings.   The
 default,  equivalent  to  is  to  enable all warnings.  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 %%, %h, %U, and %u.  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.