[BACK]Return to sshd.8 CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/sshd.8 between version 1.1 and 1.2

version 1.1, 1999/09/26 20:53:38 version 1.2, 1999/09/26 22:30:06
Line 11 
Line 11 
 .\"  .\"
 .\" $Id$  .\" $Id$
 .\"  .\"
 .TH SSHD 8 "November 8, 1995" "SSH" "SSH"  .Dd September 25, 1999
   .Dt SSHD 8
 .SH NAME  .Os
 sshd \- secure shell daemon  .Sh NAME
   .Nm sshd
 .SH SYNOPSIS  .Nd secure shell daemon
 .na  .Sh SYNOPSIS
 .B sshd  .Nm sshd
 [\c  .Op Fl diq
 .BI \-b \ bits\fR\c  .Op Fl b Ar bits
 ]  .Op Fl f Ar config_file
 [\c  .Op Fl g Ar login_grace_time
 .B \-d \c  .Op Fl h Ar host_key_file
 ]  .Op Fl k Ar key_gen_time
 [\c  .Op Fl p Ar port
 .BI \-f \ config_file\fR\c  .Sh DESCRIPTION
 ]  .Nm
 [\c  
 .BI \-g \ login_grace_time\fR\c  
 ]  
 [\c  
 .BI \-h \ host_key_file\fR\c  
 ]  
 [\c  
 .B \-i \c  
 ]  
 [\c  
 .BI \-k \ key_gen_time\fR\c  
 ]  
 [\c  
 .BI \-p \ port\fR\c  
 ]  
 [\c  
 .B \-q \c  
 ]  
 .ad  
   
   
 .SH DESCRIPTION  
 .LP  
 .B Sshd  
 (Secure Shell Daemon) is the daemon program for  (Secure Shell Daemon) is the daemon program for
 .BR ssh ".  .Xr ssh 1 .
 Together these programs replace rlogin and rsh programs, and  Together these programs replace rlogin and rsh programs, and
 provide secure encrypted communications between two untrusted hosts  provide secure encrypted communications between two untrusted hosts
 over an insecure network.  The programs are intended to be as easy to  over an insecure network.  The programs are intended to be as easy to
 install and use as possible.  install and use as possible.
 .LP  .Pp
 .B Sshd  .Nm
 is the daemon that listens for connections from clients.  It is  is the daemon that listens for connections from clients.  It is
 normally started at boot from  normally started at boot from
 .I /etc/rc.local  .Pa /etc/rc .
 or equivalent.  It forks a new  It forks a new
 daemon for each incoming connection.  The forked daemons handle  daemon for each incoming connection.  The forked daemons handle
 key exchange, encryption, authentication, command execution,  key exchange, encryption, authentication, command execution,
 and data exchange.  and data exchange.
 .LP  .Pp
 Sshd works as follows.  Each host has a host-specific RSA key  .Nm
   works as follows.  Each host has a host-specific RSA key
 (normally 1024 bits) used to identify the host.  Additionally, when  (normally 1024 bits) used to identify the host.  Additionally, when
 the daemon starts, it generates a server RSA key (normally 768 bits).  the daemon starts, it generates a server RSA key (normally 768 bits).
 This key is normally regenerated every hour if it has been used, and  This key is normally regenerated every hour if it has been used, and
 is never stored on disk.  is never stored on disk.
 .LP  .Pp
 Whenever a client connects the daemon, the daemon sends its host  Whenever a client connects the daemon, the daemon sends its host
 and server public keys to the client.  The client compares the  and server public keys to the client.  The client compares the
 host key against its own database to verify that it has not changed.  host key against its own database to verify that it has not changed.
Line 83 
Line 60 
 random number as a session key which is used to encrypt all further  random number as a session key which is used to encrypt all further
 communications in the session.  The rest of the session is encrypted  communications in the session.  The rest of the session is encrypted
 using a conventional cipher.  Currently,  using a conventional cipher.  Currently,
 .BR \s-1Blowfish\s0 ",  Blowfish, IDEA, DES, and 3DES.
 .BR \s-1IDEA\s0 ",  3DES
 .BR \s-1DES\s0 ",  
 .BR \s-1\&3DES\s0 ",  
 .B \s-13DES\s0  
 is used by default.  The client selects the encryption algorithm to use  is used by default.  The client selects the encryption algorithm to use
 from those offered by the server.  from those offered by the server.
 .LP  .Pp
 Next, the server and the client enter an authentication dialog.  The  Next, the server and the client enter an authentication dialog.  The
 client tries to authenticate itself using \|\s+2.\s0rhosts  client tries to authenticate itself using
 authentication, \|\s+2.\s0rhosts authentication combined with RSA host  .Pa .rhosts
   authentication,
   .Pa .rhosts
   authentication combined with RSA host
 authentication, RSA challenge-response authentication, or password  authentication, RSA challenge-response authentication, or password
 based authentication.  based authentication.
 .LP  .Pp
 Rhosts authentication is normally disabled  Rhosts authentication is normally disabled
 because it is fundamentally insecure, but can be enabled in the server  because it is fundamentally insecure, but can be enabled in the server
 configuration file if desired.  System security is not improved unless  configuration file if desired.  System security is not improved unless
 .BR rshd "(8),  .Xr rshd 8 ,
 .BR rlogind "(8),  .Xr rlogind 8 ,
 .BR rexecd "(8), and  .Xr rexecd 8 ,
 .B rexd "(8)  and
   .Xr rexd 8
 are disabled (thus completely disabling  are disabled (thus completely disabling
 .BR rlogin (1)  .Xr rlogin 1
 and  and
 .BR rsh (1)  .Xr rsh 1
 into that machine).  into that machine).
 .LP  .Pp
 If the client successfully authenticates itself, a dialog for  If the client successfully authenticates itself, a dialog for
 preparing the session is entered.  At this time the client may request  preparing the session is entered.  At this time the client may request
 things like allocating a pseudo-tty, forwarding X11 connections,  things like allocating a pseudo-tty, forwarding X11 connections,
 forwarding TCP/IP connections, or forwarding the authentication agent  forwarding TCP/IP connections, or forwarding the authentication agent
 connection over the secure channel.  connection over the secure channel.
 .LP  .Pp
 Finally, the client either requests a shell or execution of a command.  Finally, the client either requests a shell or execution of a command.
 The sides then enter session mode.  In this mode, either side may send  The sides then enter session mode.  In this mode, either side may send
 data at any time, and such data is forwarded to/from the shell or  data at any time, and such data is forwarded to/from the shell or
 command on the server side, and the user terminal in the client side.  command on the server side, and the user terminal in the client side.
 .LP  .Pp
 When the user program terminates and all forwarded X11 and other  When the user program terminates and all forwarded X11 and other
 connections have been closed, the server sends command exit status to  connections have been closed, the server sends command exit status to
 the client, and both sides exit.  the client, and both sides exit.
 .LP  .Pp
 .B Sshd  .Nm
 can be configured using command-line options or a configuration  can be configured using command-line options or a configuration
 file.  Command-line options override values specified in the  file.  Command-line options override values specified in the
 configuration file.  configuration file.
   .Sh OPTIONS
   .Bl -tag -width Ds
 .SH OPTIONS  .It Fl b Ar bits
 .TP  
 .BI \-b \ bits  
 Specifies the number of bits in the server key (default 768).  Specifies the number of bits in the server key (default 768).
 .TP  .Pp
 .B \-d  .It Fl d
 Debug mode.  The server sends verbose debug output to the system  Debug mode.  The server sends verbose debug output to the system
 log, and does not put itself in the background.  The server also will  log, and does not put itself in the background.  The server also will
 not fork and will only process one connection.  This option is only  not fork and will only process one connection.  This option is only
 intended for debugging for the server.  intended for debugging for the server.
 .TP  .It Fl f Ar configuration_file
 .BI \-f \ configuration_file  
 Specifies the name of the configuration file.  The default is  Specifies the name of the configuration file.  The default is
 .IR /etc/sshd_config ".  .Pa /etc/sshd_config .
 .TP  .It Fl g Ar login_grace_time
 .BI \-g \ login_grace_time  
 Gives the grace time for clients to authenticate themselves (default  Gives the grace time for clients to authenticate themselves (default
 300 seconds).  If the client fails to authenticate the user within  300 seconds).  If the client fails to authenticate the user within
 this many seconds, the server disconnects and exits.  A value of zero  this many seconds, the server disconnects and exits.  A value of zero
 indicates no limit.  indicates no limit.
 .TP  .It Fl h Ar host_key_file
 .BI \-h \ host_key_file  
 Specifies the file from which the host key is read (default  Specifies the file from which the host key is read (default
 .IR /etc/ssh_host_key).  .Pa /etc/ssh_host_key ) .
 This option must be given if sshd is not run as root (as the normal  This option must be given if sshd is not run as root (as the normal
 host file is normally not readable by anyone but root).  host file is normally not readable by anyone but root).
 .TP  .It Fl i
 .B \-i  
 Specifies that sshd is being run from inetd.  Sshd is normally not run  Specifies that sshd is being run from inetd.  Sshd is normally not run
 from inetd because it needs to generate the server key before it can  from inetd because it needs to generate the server key before it can
 respond to the client, and this may take tens of seconds.  Clients  respond to the client, and this may take tens of seconds.  Clients
 would have to wait too long if the key was regenerated every time.  would have to wait too long if the key was regenerated every time.
 However, with small key sizes (e.g.  512) using sshd from inetd may  However, with small key sizes (e.g.  512) using sshd from inetd may
 be feasible.  be feasible.
 .TP  .It Fl k Ar key_gen_time
 .BI \-k \ key_gen_time  
 Specifies how often the server key is regenerated (default 3600  Specifies how often the server key is regenerated (default 3600
 seconds, or one hour).  The motivation for regenerating the key fairly  seconds, or one hour).  The motivation for regenerating the key fairly
 often is that the key is not stored anywhere, and after about an hour,  often is that the key is not stored anywhere, and after about an hour,
 it becomes impossible to recover the key for decrypting intercepted  it becomes impossible to recover the key for decrypting intercepted
 communications even if the machine is cracked into or physically  communications even if the machine is cracked into or physically
 seized.  A value of zero indicates that the key will never be regenerated.  seized.  A value of zero indicates that the key will never be regenerated.
 .TP  .It Fl p Ar port
 .BI \-p \ port  
 Specifies the port on which the server listens for connections  Specifies the port on which the server listens for connections
 (default 22).  (default 22).
 .TP  .It Fl q
 .B \-q  
 Quiet mode.  Nothing is sent to the system log.  Normally the beginning,  Quiet mode.  Nothing is sent to the system log.  Normally the beginning,
 authentication, and termination of each connection is logged.  authentication, and termination of each connection is logged.
   .El
 .SH CONFIGURATION FILE  .Sh CONFIGURATION FILE
   .Nm
 .B Sshd  
 reads configuration data from  reads configuration data from
 .I /etc/sshd_config  .Pa /etc/sshd_config
 (or the file specified with -f on the command line).  The file  (or the file specified with
 contains keyword-value pairs, one per line.  Lines starting with '#'  .Fl f
   on the command line).  The file
   contains keyword-value pairs, one per line.  Lines starting with
   .Ql #
 and empty lines are interpreted as comments.  and empty lines are interpreted as comments.
   .Pp
 The following keywords are possible.  The following keywords are possible.
 .TP  .Bl -tag -width Ds
 .B AFSTokenPassing  .It Cm AFSTokenPassing
 Specifies whether to accept AFS tokens passed from the client. Default  Specifies whether to accept AFS tokens passed from the client. Default
 is "yes".  is
 .TP  .Dq yes .
 .B AllowHosts  .It Cm AllowHosts
 This keyword can be followed by any number of host name patterns,  This keyword can be followed by any number of host name patterns,
 separated by spaces.  If specified, login is allowed only from hosts  separated by spaces.  If specified, login is allowed only from hosts
 whose name matches one of the patterns.  '*' and '?' can be used as  whose name matches one of the patterns.
   .Ql \&*
   and
   .Ql ?
   can be used as
 wildcards in the patterns.  Normal name servers are used to map the  wildcards in the patterns.  Normal name servers are used to map the
 client's host into a canonical host name.  If the name cannot be  client's host into a canonical host name.  If the name cannot be
 mapped, its IP-address is used as the host name.  By default all hosts  mapped, its IP-address is used as the host name.  By default all hosts
 are allowed to connect.  are allowed to connect.
   .Pp
 Note that  Note that
 .B sshd  .Nm
 can also be configured to use tcp_wrappers using the --with-libwrap  can also be configured to use tcp_wrappers using the
   .Fl -with-libwrap
 compile-time configuration option.  compile-time configuration option.
 .TP  .It Cm DenyHosts
 .B DenyHosts  
 This keyword can be followed by any number of host name patterns,  This keyword can be followed by any number of host name patterns,
 separated by spaces.  If specified, login is disallowed from the hosts  separated by spaces.  If specified, login is disallowed from the hosts
 whose name matches any of the patterns.  whose name matches any of the patterns.
 .TP  .It Cm FascistLogging
 .B FascistLogging  
 Specifies whether to use verbose logging.  Verbose logging violates  Specifies whether to use verbose logging.  Verbose logging violates
 the privacy of users and is not recommended.  The argument must be  the privacy of users and is not recommended.  The argument must be
 "yes" or "no" (without the quotes).  The default is "no".  .Dq yes
 .TP  or
 .B HostKey  .Dq no .
   The default is
   .Dq no .
   .It Cm HostKey
 Specifies the file containing the private host key (default  Specifies the file containing the private host key (default
 .IR /etc/ssh_host_key ").  .Pa /etc/ssh_host_key ) .
 .TP  .It Cm IgnoreRhosts
 .B IgnoreRhosts  
 Specifies that rhosts and shosts files will not be used in  Specifies that rhosts and shosts files will not be used in
 authentication.  authentication.
 .I /etc/hosts.equiv  .Pa /etc/hosts.equiv
 and  and
 .I /etc/shosts.equiv  .Pa /etc/shosts.equiv
 are still used.  The default is "no".  are still used.  The default is
 .TP  .Dq no .
 .B KeepAlive  .It Cm KeepAlive
 Specifies whether the system should send keepalive messages to the  Specifies whether the system should send keepalive messages to the
 other side.  If they are sent, death of the connection or crash of one  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  of the machines will be properly noticed.  However, this means that
 connections will die if the route is down temporarily, and some people  connections will die if the route is down temporarily, and some people
 find it annoying.  On the other hand, if keepalives are not send,  find it annoying.  On the other hand, if keepalives are not send,
 sessions may hang indefinitely on the server, leaving "ghost" users  sessions may hang indefinitely on the server, leaving
 and consuming server resources.  .Dq ghost
   users and consuming server resources.
 The default is "yes" (to send keepalives), and the server will notice  .Pp
   The default is
   .Dq yes
   (to send keepalives), and the server will notice
 if the network goes down or the client host reboots.  This avoids  if the network goes down or the client host reboots.  This avoids
 infinitely hanging sessions.  infinitely hanging sessions.
   .Pp
 To disable keepalives, the value should be set to "no" in both the  To disable keepalives, the value should be set to
 server and the client configuration files.  .Dq no
 .TP  in both the server and the client configuration files.
 .B KerberosAuthentication  .It Cm KerberosAuthentication
 Specifies whether Kerberos authentication is allowed. This can  Specifies whether Kerberos authentication is allowed. This can
 be in the form of a Kerberos ticket, or if PasswordAuthentication  be in the form of a Kerberos ticket, or if PasswordAuthentication
 is yes, the password provided by the user will be validated through  is yes, the password provided by the user will be validated through
 the Kerberos KDC / AFS kaserver / DCE Security Server. Default is yes.  the Kerberos KDC / AFS kaserver / DCE Security Server. Default is yes.
 .TP  .It Cm KerberosOrLocalPasswd
 .B KerberosOrLocalPasswd  
 If set then if password authentication through Kerberos fails then  If set then if password authentication through Kerberos fails then
 the password will be validated via any additional local mechanism  the password will be validated via any additional local mechanism
 such as /etc/passwd or SecurID. Default is no.  such as
 .TP  .Pa /etc/passwd
 .B KerberosTgtPassing  or SecurID. Default is
   .Dq no .
   .It Cm KerberosTgtPassing
 Specifies whether a Kerberos TGT may be forwarded to the server.  Specifies whether a Kerberos TGT may be forwarded to the server.
 Default is no, TGT forwarding does only work with the AFS kaserver.  Default is no, TGT forwarding does only work with the AFS kaserver.
 .TP  .It Cm KerberosTicketCleanup
 .B KerberosTicketCleanup  
 Specifies whether to automatically destroy the user's  Specifies whether to automatically destroy the user's
 ticket cache file on logout. Default is yes.  ticket cache file on logout. Default is yes.
 .TP  .It Cm KeyRegenerationInterval
 .B KeyRegenerationInterval  
 The server key is automatically regenerated after this many seconds  The server key is automatically regenerated after this many seconds
 (if it has been used).  The purpose of regeneration is to prevent  (if it has been used).  The purpose of regeneration is to prevent
 decrypting captured sessions by later breaking into the machine and  decrypting captured sessions by later breaking into the machine and
 stealing the keys.  The key is never stored anywhere.  If the value is  stealing the keys.  The key is never stored anywhere.  If the value is
 0, the key is never regenerated.  The default is 3600  0, the key is never regenerated.  The default is 3600
 (seconds).  (seconds).
 .TP  .It Cm LoginGraceTime
 .B LoginGraceTime  
 The server disconnects after this time if the user has not  The server disconnects after this time if the user has not
 successfully logged in.  If the value is 0, there is no time limit.  successfully logged in.  If the value is 0, there is no time limit.
 The default is 600 (seconds).  The default is 600 (seconds).
 .TP  .It Cm PasswordAuthentication
 .B PasswordAuthentication  
 Specifies whether password authentication is allowed.  Specifies whether password authentication is allowed.
 The default is "yes".  The default is
 .TP  .Dq yes .
 .B PermitEmptyPasswords  .It Cm PermitEmptyPasswords
 When password authentication is allowed, it specifies whether the  When password authentication is allowed, it specifies whether the
 server allows login to accounts with empty password strings.  The default  server allows login to accounts with empty password strings.  The default
 is "yes".  is
 .TP  .Dq yes .
 .B PermitRootLogin  .It Cm PermitRootLogin
 Specifies whether the root can log in using  Specifies whether the root can log in using
 .BR ssh .  .Xr ssh 1 .
 The default is "yes".  The default is
   .Dq yes .
 Root login with RSA authentication when the "command" option has been  .Pp
   Root login with RSA authentication when the
   .Ar command
   option has been
 specified will be allowed regardless of the value of this setting  specified will be allowed regardless of the value of this setting
 (which may be useful for taking remote backups even if root login is  (which may be useful for taking remote backups even if root login is
 normally not allowed).  normally not allowed).
 .TP  .It Cm Port
 .B Port  
 Specifies the port number that  Specifies the port number that
 .B sshd  .Nm
 listens on.  The default is 22.  listens on.  The default is 22.
 .TP  .It Cm PrintMotd
 .B PrintMotd  
 Specifies whether  Specifies whether
 .B sshd  .Nm
 should print  should print
 .I /etc/motd  .Pa /etc/motd
 when a user logs in interactively.  (On some systems it is also  when a user logs in interactively.  (On some systems it is also
 printed by the shell, /etc/profile, or equivalent.)  The default is  printed by the shell,
 "yes".  .Pa /etc/profile ,
 .TP  or equivalent.)  The default is
 .B QuietMode  .Dq yes .
   .It Cm QuietMode
 Specifies whether the system runs in quiet mode.  In quiet mode,  Specifies whether the system runs in quiet mode.  In quiet mode,
 nothing is logged in the system log, except fatal errors.  The default  nothing is logged in the system log, except fatal errors.  The default
 is "no".  is
 .TP  .Dq no .
 .B RandomSeed  .It Cm RandomSeed
 Specifies the file containing the random seed for the server; this  Specifies the file containing the random seed for the server; this
 file is created automatically and updated regularly.  The default is  file is created automatically and updated regularly.  The default is
 .IR /etc/ssh_random_seed ".  .Pa /etc/ssh_random_seed .
 .TP  .It Cm RhostsAuthentication
 .B RhostsAuthentication  
 Specifies whether authentication using rhosts or /etc/hosts.equiv  Specifies whether authentication using rhosts or /etc/hosts.equiv
 files is sufficient.  Normally, this method should not be permitted  files is sufficient.  Normally, this method should not be permitted
 because it is insecure.  RhostsRSAAuthentication should be used  because it is insecure.  RhostsRSAAuthentication should be used
 instead, because it performs RSA-based host authentication in addition  instead, because it performs RSA-based host authentication in addition
 to normal rhosts or /etc/hosts.equiv authentication.  to normal rhosts or /etc/hosts.equiv authentication.
 The default is "no".  The default is
 .TP  .Dq no .
 .B RhostsRSAAuthentication  .It Cm RhostsRSAAuthentication
 Specifies whether rhosts or /etc/hosts.equiv authentication together  Specifies whether rhosts or /etc/hosts.equiv authentication together
 with successful RSA host authentication is allowed.  The default is "yes".  with successful RSA host authentication is allowed.  The default is
 .TP  .Dq yes .
 .B RSAAuthentication  .It Cm RSAAuthentication
 Specifies whether pure RSA authentication is allowed.  The default is "yes".  Specifies whether pure RSA authentication is allowed.  The default is
 .TP  .Dq yes .
 .B ServerKeyBits  .It Cm ServerKeyBits
 Defines the number of bits in the server key.  The minimum value is  Defines the number of bits in the server key.  The minimum value is
 512, and the default is 768.  512, and the default is 768.
 .TP  .It Cm StrictModes
 .B StrictModes  Specifies whether SSH should check file modes and ownership of the
 Specifies whether ssh should check file modes and ownership of the  
 user's home directory and rhosts files before accepting login.  This  user's home directory and rhosts files before accepting login.  This
 is normally desirable because novices sometimes accidentally leave their  is normally desirable because novices sometimes accidentally leave their
 directory or files world-writable.  The default is "yes".  directory or files world-writable.  The default is "yes".
 .TP  .It Cm SyslogFacility
 .B SyslogFacility  
 Gives the facility code that is used when logging messages from  Gives the facility code that is used when logging messages from
 .B sshd.  .Nm sshd .
 The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,  The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
 LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.  The default is DAEMON.  LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.  The default is DAEMON.
 .TP  .It Cm X11Forwarding
 .B X11Forwarding  Specifies whether X11 forwarding is permitted.  The default is
 Specifies whether X11 forwarding is permitted.  The default is "yes".  .Dq yes .
 Note that disabling X11 forwarding does not improve security in any  Note that disabling X11 forwarding does not improve security in any
 way, as users can always install their own forwarders.  way, as users can always install their own forwarders.
   .El
 .SH LOGIN PROCESS  .Sh LOGIN PROCESS
   
 When a user successfully logs in,  When a user successfully logs in,
 .B sshd  .Nm
 does the following:  does the following:
 .IP 1.  .Bl -enum -offset indent
   .It
 If the login is on a tty, and no command has been specified,  If the login is on a tty, and no command has been specified,
 prints last login time and  prints last login time and
 .B /etc/motd  .Pa /etc/motd
 (unless prevented in the configuration file or by  (unless prevented in the configuration file or by
 .IR $HOME/\s+2.\s0hushlogin ;  .Pa $HOME/.hushlogin ;
 see the FILES section).  see the
 .IP 2.  .Sx FILES
   section).
   .It
 If the login is on a tty, records login time.  If the login is on a tty, records login time.
 .IP 3.  .It
 Checks /etc/nologin; if it exists, prints contents and quits  Checks
   .Pa /etc/nologin ;
   if it exists, prints contents and quits
 (unless root).  (unless root).
 .IP 4.  .It
 Changes to run with normal user privileges.  Changes to run with normal user privileges.
 .IP 5.  .It
 Sets up basic environment.  Sets up basic environment.
 .IP 6.  .It
 Reads /etc/environment if it exists.  Reads
 .IP 7.  .Pa /etc/environment
 Reads $HOME/.ssh/environment if it exists.  if it exists.
 .IP 8.  .It
   Reads
   .Pa $HOME/.ssh/environment
   if it exists.
   .It
 Changes to user's home directory.  Changes to user's home directory.
 .IP 9.  .It
 If $HOME/.ssh/rc exists, runs it; else if /etc/sshrc exists, runs  If
 it; otherwise runs xauth.  The "rc" files are given the X11  .Pa $HOME/.ssh/rc
   exists, runs it; else if
   .Pa /etc/sshrc
   exists, runs
   it; otherwise runs xauth.  The
   .Dq rc
   files are given the X11
 authentication protocol and cookie in standard input.  authentication protocol and cookie in standard input.
 .IP 10.  .It
 Runs user's shell or command.  Runs user's shell or command.
 .RT  .El
   .Sh AUTHORIZED_KEYS FILE FORMAT
   
 .SH AUTHORIZED_KEYS FILE FORMAT  
 .LP  
 The  The
 .I \&$HOME/\s+2.\s0ssh/authorized_keys  .Pa $HOME/.ssh/authorized_keys
 file lists the RSA keys that are  file lists the RSA keys that are
 permitted for RSA authentication.  Each line of the file contains one  permitted for RSA authentication.  Each line of the file contains one
 key (empty lines and lines starting with a '#' are ignored as  key (empty lines and lines starting with a
   .Ql #
   are ignored as
 comments).  Each line consists of the following fields, separated by  comments).  Each line consists of the following fields, separated by
 spaces: options, bits, exponent, modulus, comment.  The options field  spaces: options, bits, exponent, modulus, comment.  The options field
 is optional; its presence is determined by whether the line starts  is optional; its presence is determined by whether the line starts
Line 410 
Line 398 
 The bits, exponent, modulus and comment fields give the RSA key; the  The bits, exponent, modulus and comment fields give the RSA key; the
 comment field is not used for anything (but may be convenient for the  comment field is not used for anything (but may be convenient for the
 user to identify the key).  user to identify the key).
 .LP  .Pp
 Note that lines in this file are usually several hundred bytes long  Note that lines in this file are usually several hundred bytes long
 (because of the size of the RSA key modulus).  You don't want to type  (because of the size of the RSA key modulus).  You don't want to type
 them in; instead, copy the  them in; instead, copy the
 .I identity.pub  .Pa identity.pub
 file and edit it.  file and edit it.
 .LP  .Pp
 The options (if present) consists of comma-separated option  The options (if present) consists of comma-separated option
 specifications.  No spaces are permitted, except within double quotes.  specifications.  No spaces are permitted, except within double quotes.
 The following option specifications are supported:  The following option specifications are supported:
 .IP  .Bl -tag -width Ds
 .ti -.5i  .It Cm from="pattern-list"
 \fBfrom="pattern-list" \fR  
 .br  
 Specifies that in addition to RSA authentication, the canonical name  Specifies that in addition to RSA authentication, the canonical name
 of the remote host must be present in the comma-separated list of  of the remote host must be present in the comma-separated list of
 patterns ('*' and '?' serve as wildcards).  The list may also contain  patterns ('*' and '?' serve as wildcards).  The list may also contain
Line 436 
Line 422 
 additional option makes using a stolen key more difficult (name  additional option makes using a stolen key more difficult (name
 servers and/or routers would have to be compromised in addition to  servers and/or routers would have to be compromised in addition to
 just the key).  just the key).
 .IP  .It Cm command="command"
 .ti -.5i  
 \fBcommand="command"\fR  
 .br  
 Specifies that the command is executed whenever this key is used for  Specifies that the command is executed whenever this key is used for
 authentication.  The command supplied by the user (if any) is ignored.  authentication.  The command supplied by the user (if any) is ignored.
 The command is run on a pty if the connection requests a pty;  The command is run on a pty if the connection requests a pty;
Line 449 
Line 432 
 example might be a key that permits remote backups but nothing  example might be a key that permits remote backups but nothing
 else.  Notice that the client may specify TCP/IP and/or X11  else.  Notice that the client may specify TCP/IP and/or X11
 forwardings unless they are explicitly prohibited.  forwardings unless they are explicitly prohibited.
 .IP  .It Cm environment="NAME=value"
 .ti -.5i  
 \fBenvironment="NAME=value"\fR  
 .br  
 Specifies that the string is to be added to the environment when  Specifies that the string is to be added to the environment when
 logging in using this key.  Environment variables set this way  logging in using this key.  Environment variables set this way
 override other default environment values.  Multiple options of this  override other default environment values.  Multiple options of this
 type are permitted.  type are permitted.
 .TP  .It Cm no-port-forwarding
 .B no-port-forwarding  
 Forbids TCP/IP forwarding when this key is used for authentication.  Forbids TCP/IP forwarding when this key is used for authentication.
 Any port forward requests by the client will return an error.  This  Any port forward requests by the client will return an error.  This
 might be used e.g.  in connection with the  might be used, e.g., in connection with the
 .B command  .Cm command
 option.  option.
 .TP  .It Cm no-X11-forwarding
 .B no-X11-forwarding  
 Forbids X11 forwarding when this key is used for authentication.  Forbids X11 forwarding when this key is used for authentication.
 Any X11 forward requests by the client will return an error.  Any X11 forward requests by the client will return an error.
 .TP  .It Cm no-agent-forwarding
 .B no-agent-forwarding  
 Forbids authentication agent forwarding when this key is used for  Forbids authentication agent forwarding when this key is used for
 authentication.  authentication.
 .TP  .It Cm no-pty
 .B no-pty  
 Prevents tty allocation (a request to allocate a pty will fail).  Prevents tty allocation (a request to allocate a pty will fail).
   .El
 .SS Examples  .Ss Examples
 .LP  
 1024 33 12121.\|.\|.\|312314325 ylo@foo.bar  1024 33 12121.\|.\|.\|312314325 ylo@foo.bar
 .LP  .Pp
 from="*.niksula.hut.fi,!pc.niksula.hut.fi" 1024 35 23.\|.\|.\|2334 ylo@niksula  from="*.niksula.hut.fi,!pc.niksula.hut.fi" 1024 35 23.\|.\|.\|2334 ylo@niksula
 .LP  .Pp
 command="dump /home",no-pty,no-port-forwarding 1024 33 23.\|.\|.\|2323 backup.hut.fi  command="dump /home",no-pty,no-port-forwarding 1024 33 23.\|.\|.\|2323 backup.hut.fi
   .Sh SSH_KNOWN_HOSTS FILE FORMAT
   
   
 .SH SSH_KNOWN_HOSTS FILE FORMAT  
 .LP  
 The  The
 .I /etc/ssh_known_hosts  .Pa /etc/ssh_known_hosts
 and  and
 .I \&$HOME/\s+2.\s0ssh/known_hosts  .Pa $HOME/.ssh/known_hosts
 files contain host public keys for all known hosts.  The global file should  files contain host public keys for all known hosts.  The global file should
 be prepared by the admistrator (optional), and the per-user file is  be prepared by the admistrator (optional), and the per-user file is
 maintained automatically: whenever the user connects an unknown host  maintained automatically: whenever the user connects an unknown host
 its key is added to the per-user file.  The recommended way to create  its key is added to the per-user file.  The recommended way to create
 .I /etc/ssh_known_hosts  .Pa /etc/ssh_known_hosts
 is to use the  is to use the
 .B make-ssh-known-hosts  .Xr make-ssh-known-hosts 1
 command.  command.
 .LP  .Pp
 Each line in these files contains the following fields: hostnames,  Each line in these files contains the following fields: hostnames,
 bits, exponent, modulus, comment.  The fields are separated by spaces.  bits, exponent, modulus, comment.  The fields are separated by spaces.
 .LP  .Pp
 Hostnames is a comma-separated list of patterns ('*' and '?' act as  Hostnames is a comma-separated list of patterns ('*' and '?' act as
 wildcards); each pattern in turn is matched against the canonical host  wildcards); each pattern in turn is matched against the canonical host
 name (when authenticating a client) or against the user-supplied  name (when authenticating a client) or against the user-supplied
 name (when authenticating a server).  A pattern may also be preceded  name (when authenticating a server).  A pattern may also be preceded
 by '!' to indicate negation: if the host name matches a negated  by
   .Ql !
   to indicate negation: if the host name matches a negated
 pattern, it is not accepted (by that line) even if it matched another  pattern, it is not accepted (by that line) even if it matched another
 pattern on the line.  pattern on the line.
 .LP  .Pp
 Bits, exponent, and modulus are taken directly from the host key; they  Bits, exponent, and modulus are taken directly from the host key; they
 can be obtained e.g.  from  can be obtained, e.g., from
 .IR /etc/ssh_host_key.pub ".  .Pa /etc/ssh_host_key.pub .
 The optional comment field continues to the end of the line, and is not used.  The optional comment field continues to the end of the line, and is not used.
 .LP  .Pp
 Lines starting with '#' and empty lines are ignored as comments.  Lines starting with
 .LP  .Ql #
   and empty lines are ignored as comments.
   .Pp
 When performing host authentication, authentication is accepted if any  When performing host authentication, authentication is accepted if any
 matching line has the proper key.  It is thus permissible (but not  matching line has the proper key.  It is thus permissible (but not
 recommended) to have several lines or different host keys for the same  recommended) to have several lines or different host keys for the same
Line 526 
Line 501 
 from different domains are put in the file.  It is possible  from different domains are put in the file.  It is possible
 that the files contain conflicting information; authentication is  that the files contain conflicting information; authentication is
 accepted if valid information can be found from either file.  accepted if valid information can be found from either file.
 .LP  .Pp
 Note that the lines in these files are typically hundreds of characters  Note that the lines in these files are typically hundreds of characters
 long, and you definitely don't want to type in the host keys by hand.  long, and you definitely don't want to type in the host keys by hand.
 Rather, generate them by a script (see  Rather, generate them by a script (see
 .BR make-ssh-known-hosts (1))  .Xr make-ssh-known-hosts 1 )
 or by taking  or by taking
 .I /etc/ssh_host_key.pub  .Pa /etc/ssh_host_key.pub
 and adding the host names at the front.  and adding the host names at the front.
   .Ss Examples
 .SS Examples  
   
 closenet,closenet.hut.fi,.\|.\|.\|,130.233.208.41 1024 37 159.\|.\|.93 closenet.hut.fi  closenet,closenet.hut.fi,.\|.\|.\|,130.233.208.41 1024 37 159.\|.\|.93 closenet.hut.fi
   .Sh FILES
 .SH FILES  .Bl -tag -width Ds
 .TP  .It Pa /etc/sshd_config
 .I /etc/sshd_config  
 Contains configuration data for  Contains configuration data for
 .BR sshd .  .Nm sshd .
 This file should be writable by root only, but it is recommended  This file should be writable by root only, but it is recommended
 (though not necessary) that it be world-readable.  (though not necessary) that it be world-readable.
 .TP  .It Pa /etc/ssh_host_key
 .I /etc/ssh_host_key  
 Contains the private part of the host key.  This file is normally  Contains the private part of the host key.  This file is normally
 created automatically by "make install", but can also be created  created automatically by "make install", but can also be created
 manually using  manually using
 .BR ssh-keygen (1).  .Xr ssh-keygen 1 .
 This file should only be owned by root, readable only by root, and not  This file should only be owned by root, readable only by root, and not
 accessible to others.  accessible to others.
 .TP  .It Pa /etc/ssh_host_key.pub
 .I /etc/ssh_host_key.pub  
 Contains the public part of the host key.  This file is normally  Contains the public part of the host key.  This file is normally
 created automatically by "make install", but can also be created  created automatically by "make install", but can also be created
 manually.  This file should be world-readable but writable only by  manually.  This file should be world-readable but writable only by
 root.  Its contents should match the private part.  This file is not  root.  Its contents should match the private part.  This file is not
 really used for anything; it is only provided for the convenience of  really used for anything; it is only provided for the convenience of
 the user so its contents can be copied to known hosts files.  the user so its contents can be copied to known hosts files.
 .TP  .It Pa /etc/ssh_random_seed
 .I /etc/ssh_random_seed  
 This file contains a seed for the random number generator.  This file  This file contains a seed for the random number generator.  This file
 should only be accessible by root.  should only be accessible by root.
 .TP  .It Pa /var/run/sshd.pid
 .I /var/run/sshd.pid  Contains the process ID of the
 Contains the process id of the  .Nm
 .B sshd  
 listening for connections (if there are several daemons running  listening for connections (if there are several daemons running
 concurrently for different ports, this contains the pid of the one  concurrently for different ports, this contains the pid of the one
 started last).  The contents of this file are not sensitive; it can be  started last).  The contents of this file are not sensitive; it can be
 world-readable.  world-readable.
 .TP  .It Pa $HOME/.ssh/authorized_keys
 .I \&$HOME/\s+2.\s0ssh/authorized_keys  
 Lists the RSA keys that can be used to log into the user's account.  Lists the RSA keys that can be used to log into the user's account.
 This file must be readable by root (which may on some machines imply  This file must be readable by root (which may on some machines imply
 it being world-readable if the user's home directory resides on an NFS  it being world-readable if the user's home directory resides on an NFS
 volume).  It is recommended that it not be accessible by others.  The  volume).  It is recommended that it not be accessible by others.  The
 format of this file is described above.  format of this file is described above.
 .TP  .It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts"
 .I "/etc/ssh_known_hosts\fR and \fI$HOME/\s+2.\s0ssh/known_hosts\fR  
 These files are consulted when using rhosts with RSA host  These files are consulted when using rhosts with RSA host
 authentication to check the public key of the host.  The key must be  authentication to check the public key of the host.  The key must be
 listed in one of these files to be accepted.  (The client uses the  listed in one of these files to be accepted.  (The client uses the
 same files to verify that the remote host is the one we intended to  same files to verify that the remote host is the one we intended to
 connect.)  These files should be writable only by root/the owner.  connect.)  These files should be writable only by root/the owner.
 .I /etc/ssh_known_hosts  .Pa /etc/ssh_known_hosts
 should be world-readable, and \fI$HOME/\s+2.\s0ssh/known_hosts\fR can  should be world-readable, and
 but need not be world-readable.  .Pa $HOME/.ssh/known_hosts
 .TP  can but need not be world-readable.
 .I /etc/nologin  .Pa /etc/nologin
 If this file exists,  If this file exists,
 .B sshd  .Nm
 refuses to let anyone except root log in.  The contents of the file  refuses to let anyone except root log in.  The contents of the file
 are displayed to anyone trying to log in, and non-root connections are  are displayed to anyone trying to log in, and non-root connections are
 refused.  The file should be world-readable.  refused.  The file should be world-readable.
 .TP  .Pa $HOME/.rhosts
 .I \&$HOME/\s+2.\s0rhosts  
 This file contains host-username pairs, separated by a space, one per  This file contains host-username pairs, separated by a space, one per
 line.  The given user on the corresponding host is permitted to log in  line.  The given user on the corresponding host is permitted to log in
 without password.  The same file is used by rlogind and rshd.  without password.  The same file is used by rlogind and rshd.
 .B Ssh  Ssh differs from rlogind
 differs from rlogind  
 and rshd in that it requires RSA host authentication in addition to  and rshd in that it requires RSA host authentication in addition to
 validating the host name retrieved from domain name servers (unless  validating the host name retrieved from domain name servers (unless
 compiled with the \-\-with\-rhosts configuration option).  The file must  compiled with the
   .Fl -with-rhosts
   configuration option).  The file must
 be writable only by the user; it is recommended that it not be  be writable only by the user; it is recommended that it not be
 accessible by others.  accessible by others.
   .Pp
 If is also possible to use netgroups in the file.  Either host or user  If is also possible to use netgroups in the file.  Either host or user
 name may be of the form +@groupname to specify all hosts or all users  name may be of the form +@groupname to specify all hosts or all users
 in the group.  in the group.
 .TP  .It Pa $HOME/.shosts
 .I \&$HOME/\s+2.\s0shosts  For ssh,
 For  this file is exactly the same as for
 .B ssh,  .Pa .rhosts .
 this file is exactly the same as for \s+2.\s0rhosts.  However, this file is  However, this file is
 not used by rlogin and rshd, so using this permits access using  not used by rlogin and rshd, so using this permits access using SSH only.
 .B ssh  .Pa /etc/hosts.equiv
 only.  This file is used during
 .TP  .Pa .rhosts
 .I /etc/hosts.equiv  authentication.  In the
 This file is used during \s+2.\s0rhosts authentication.  In the  
 simplest form, this file contains host names, one per line.  Users on  simplest form, this file contains host names, one per line.  Users on
 those hosts are permitted to log in without a password, provided they  those hosts are permitted to log in without a password, provided they
 have the same user name on both machines.  The host name may also be  have the same user name on both machines.  The host name may also be
 followed by a user name; such users are permitted to log in as  followed by a user name; such users are permitted to log in as
 .B any  .Em any
 user on this machine (except root).  Additionally, the syntax +@group  user on this machine (except root).  Additionally, the syntax
 can be used to specify netgroups.  Negated entries start with '-'.  .Dq +@group
   can be used to specify netgroups.  Negated entries start with
   .Ql \&- .
   .Pp
 If the client host/user is successfully matched in this file, login is  If the client host/user is successfully matched in this file, login is
 automatically permitted provided the client and server user names are the  automatically permitted provided the client and server user names are the
 same.  Additionally, successful RSA host authentication is normally  same.  Additionally, successful RSA host authentication is normally
 required.  This file must be writable only by root; it is recommended  required.  This file must be writable only by root; it is recommended
 that it be world-readable.  that it be world-readable.
   .Pp
 \fBWarning: It is almost never a good idea to use user names in  .Sy Warning: It is almost never a good idea to use user names in
 hosts.equiv.\fR  .Pa hosts.equiv .
 Beware that it really means that the named user(s) can log in as  Beware that it really means that the named user(s) can log in as
 \fBanybody\fR,  .Em anybody ,
 which includes bin, daemon, adm, and other accounts that own critical  which includes bin, daemon, adm, and other accounts that own critical
 binaries and directories.  Using a user name practically grants the  binaries and directories.  Using a user name practically grants the
 user root access.  The only valid use for user names that I can think  user root access.  The only valid use for user names that I can think
 of is in negative entries.  of is in negative entries.
 \fBNote that this warning also applies to rsh/rlogin.\fR  .Pp
 .TP  Note that this warning also applies to rsh/rlogin.
 .I /etc/shosts.equiv  .It Pa /etc/shosts.equiv
 This is processed exactly as  This is processed exactly as
 .I /etc/hosts.equiv.  .Pa /etc/hosts.equiv .
 However, this file may be useful in environments that want to run both  However, this file may be useful in environments that want to run both
 rsh/rlogin and  rsh/rlogin and ssh.
 .B ssh.  .It Pa /etc/environment
 .TP  
 .I /etc/environment  
 This file is read into the environment at login (if it exists).  It  This file is read into the environment at login (if it exists).  It
 can only contain empty lines, comment lines (that start with '#'), and  can only contain empty lines, comment lines (that start with
 assignment lines of the form name=value.  This file is processed in  .Ql # ) ,
   and assignment lines of the form name=value.  This file is processed in
 all environments (normal rsh/rlogin only process it on AIX and  all environments (normal rsh/rlogin only process it on AIX and
 potentially some other systems).  The file should be writable only by  potentially some other systems).  The file should be writable only by
 root, and should be world-readable.  root, and should be world-readable.
 .TP  .It Pa $HOME/.ssh/environment
 .I \&$HOME/\s+2.\s0ssh/environment  
 This file is read into the environment after /etc/environment.  It has  This file is read into the environment after /etc/environment.  It has
 the same format.  The file should be writable only by the user; it  the same format.  The file should be writable only by the user; it
 need not be readable by anyone else.  need not be readable by anyone else.
 .TP  .It Pa $HOME/.ssh/rc
 .I \&$HOME/\s+2.\s0ssh/rc  
 If this file exists, it is run with /bin/sh after reading the  If this file exists, it is run with /bin/sh after reading the
 environment files but before starting the user's shell or command.  If  environment files but before starting the user's shell or command.  If
 X11 spoofing is in use, this will receive the "proto cookie" pair in  X11 spoofing is in use, this will receive the "proto cookie" pair in
 standard input (and DISPLAY in environment).  This must call xauth in  standard input (and
 that case.  .Ev DISPLAY
   in environment).  This must call
   .Xr xauth 1
   in that case.
   .Pp
 The primary purpose of this file is to run any initialization routines  The primary purpose of this file is to run any initialization routines
 which may be needed before the user's home directory becomes  which may be needed before the user's home directory becomes
 accessible; AFS is a particular example of such an environment.  accessible; AFS is a particular example of such an environment.
   .Pp
 This file will probably contain some initialization code followed by  This file will probably contain some initialization code followed by
 something similar to: "if read proto cookie; then echo add $DISPLAY  something similar to: "if read proto cookie; then echo add $DISPLAY
 $proto $cookie | xauth -q -; fi".  $proto $cookie | xauth -q -; fi".
   .Pp
 If this file does not exist, /etc/sshrc is run, and if that  If this file does not exist,
   .Pa /etc/sshrc
   is run, and if that
 does not exist either, xauth is used to store the cookie.  does not exist either, xauth is used to store the cookie.
   .Pp
 This file should be writable only by the user, and need not be  This file should be writable only by the user, and need not be
 readable by anyone else.  readable by anyone else.
 .TP  .It Pa /etc/sshrc
 .I /etc/sshrc  Like
 Like $HOME/\s+2.\s0ssh/rc.  This can be used to specify  .Pa $HOME/.ssh/rc .
   This can be used to specify
 machine-specific login-time initializations globally.  This file  machine-specific login-time initializations globally.  This file
 should be writable only by root, and should be world-readable.  should be writable only by root, and should be world-readable.
   .Sh INSTALLATION
   .Nm
 .SH INSTALLATION  
 .LP  
 .B Sshd  
 is normally run as root.  If it is not run as root, it can  is normally run as root.  If it is not run as root, it can
 only log in as the user it is running as, and password authentication  only log in as the user it is running as, and password authentication
 may not work if the system uses shadow passwords.  An alternative  may not work if the system uses shadow passwords.  An alternative
 host key file must also be used.  host key file must also be used.
 .LP  .Pp
 .B Sshd  .Nm
 is normally started from  is normally started from
 .I /etc/rc.local  .Pa /etc/rc
 or equivalent at system boot.  or equivalent at system boot.
 .LP  .Pp
 Considerable work has been put to making  Considerable work has been put to making
 .B sshd  .Nm
 secure.  However, if you find a security problem, please report it  secure.  However, if you find a security problem, please report it
 immediately to <ssh-bugs@cs.hut.fi>.  immediately to <ssh-bugs@cs.hut.fi>.
   .Sh AUTHOR
 .SH AUTHOR  
 .LP  
 Tatu Ylonen <ylo@cs.hut.fi>  Tatu Ylonen <ylo@cs.hut.fi>
 .LP  .Pp
 Information about new releases, mailing lists, and other related  Information about new releases, mailing lists, and other related
 issues can be found from the ssh WWW home page at  issues can be found from the SSH WWW home page:
 http://www.cs.hut.fi/ssh.  .Pp
   .Dl http://www.cs.hut.fi/ssh.
 .SH SEE ALSO  .Sh SEE ALSO
 .LP  .Xr make-ssh-known-hosts 1 ,
 .BR ssh (1),  .Xr rlogin 1 ,
 .BR make-ssh-known-hosts (1),  .Xr rsh 1 ,
 .BR ssh-keygen (1),  .Xr scp 1 ,
 .BR ssh-agent (1),  .Xr ssh 1 ,
 .BR ssh-add (1),  .Xr ssh-add x 1 ,
 .BR scp (1),  .Xr ssh-agent 1 ,
 .BR rlogin (1),  .Xr ssh-keygen 1
 .BR rsh (1)  

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2