=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sshd.8,v retrieving revision 1.153 retrieving revision 1.153.2.5 diff -u -r1.153 -r1.153.2.5 --- src/usr.bin/ssh/sshd.8 2001/09/27 17:53:24 1.153 +++ src/usr.bin/ssh/sshd.8 2002/05/17 00:03:24 1.153.2.5 @@ -34,7 +34,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd.8,v 1.153 2001/09/27 17:53:24 camield Exp $ +.\" $OpenBSD: sshd.8,v 1.153.2.5 2002/05/17 00:03:24 miod Exp $ .Dd September 25, 1999 .Dt SSHD 8 .Os @@ -49,6 +49,7 @@ .Op Fl g Ar login_grace_time .Op Fl h Ar host_key_file .Op Fl k Ar key_gen_time +.Op Fl o Ar option .Op Fl p Ar port .Op Fl u Ar len .Sh DESCRIPTION @@ -115,14 +116,14 @@ because it is fundamentally insecure, but can be enabled in the server configuration file if desired. System security is not improved unless -.Xr rshd 8 , -.Xr rlogind 8 , +.Nm rshd , +.Nm rlogind , and -.Xr rexecd 8 +.Xr rexecd are disabled (thus completely disabling -.Xr rlogin 1 +.Xr rlogin and -.Xr rsh 1 +.Xr rsh into the machine). .Pp .Ss SSH protocol version 2 @@ -207,12 +208,18 @@ this many seconds, the server disconnects and exits. A value of zero indicates no limit. .It Fl h Ar host_key_file -Specifies the file from which the host key is read (default -.Pa /etc/ssh_host_key ) . +Specifies a file from which a host key is read. This option must be given if .Nm is not run as root (as the normal -host file is normally not readable by anyone but root). +host key files are normally not readable by anyone but root). +The default is +.Pa /etc/ssh_host_key +for protocol version 1, and +.Pa /etc/ssh_host_rsa_key +and +.Pa /etc/ssh_host_dsa_key +for protocol version 2. It is possible to have multiple host key files for the different protocol versions and host key algorithms. .It Fl i @@ -237,9 +244,16 @@ communications even if the machine is cracked into or physically seized. A value of zero indicates that the key will never be regenerated. +.It Fl o Ar option +Can be used to give options in the format used in the configuration file. +This is useful for specifying options for which there is no separate +command-line flag. .It Fl p Ar port Specifies the port on which the server listens for connections (default 22). +Multiple port options are permitted. +Ports specified in the configuration file are ignored when a +command-line port is specified. .It Fl q Quiet mode. Nothing is sent to the system log. @@ -248,7 +262,7 @@ .It Fl t Test mode. Only check the validity of the configuration file and sanity of the keys. -This is useful for updating +This is useful for updating .Nm reliably as configuration options may change. .It Fl u Ar len @@ -279,6 +293,11 @@ and using a .Cm from="pattern-list" option in a key file. +Configuration options that require DNS include using a +USER@HOST pattern in +.Cm AllowUsers +or +.Cm DenyUsers . .It Fl D When this option is specified .Nm @@ -313,9 +332,9 @@ .It Cm AFSTokenPassing Specifies whether an AFS token may be forwarded to the server. Default is -.Dq yes . +.Dq no . .It Cm AllowGroups -This keyword can be followed by a list of group names, separated +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. @@ -325,7 +344,7 @@ can be used as wildcards in the patterns. Only group names are valid; a numerical group ID is not recognized. -By default login is allowed regardless of the group list. +By default, login is allowed for all groups. .Pp .It Cm AllowTcpForwarding Specifies whether TCP forwarding is permitted. @@ -336,7 +355,7 @@ own forwarders. .Pp .It Cm AllowUsers -This keyword can be followed by a list of user names, separated +This keyword can be followed by a list of user name patterns, separated by spaces. If specified, login is allowed only for users names that match one of the patterns. @@ -346,7 +365,7 @@ can be used as wildcards in the patterns. Only user names are valid; a numerical user ID is not recognized. -By default login is allowed regardless of the user name. +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. @@ -364,13 +383,14 @@ is taken to be an absolute path or one relative to the user's home directory. The default is -.Dq .ssh/authorized_keys +.Dq .ssh/authorized_keys . .It Cm Banner In some jurisdictions, sending a warning message before authentication may be relevant for getting legal protection. The contents of the specified file are sent to the remote user before authentication is allowed. This option is only available for protocol version 2. +By default, no banner is displayed. .Pp .It Cm ChallengeResponseAuthentication Specifies whether challenge response authentication is allowed. @@ -383,7 +403,11 @@ Specifies the ciphers allowed for protocol version 2. Multiple ciphers must be comma-separated. The default is -.Dq aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour. +.Pp +.Bd -literal + ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, + aes192-cbc,aes256-cbc'' +.Ed .It Cm ClientAliveInterval Sets a timeout interval in seconds after which if no data has been received from the client, @@ -402,11 +426,11 @@ .Nm will disconnect the client, terminating the session. It is important to note that the use of client alive messages is very different from -.Cm Keepalive +.Cm KeepAlive (below). The client alive messages are sent through the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by -.Cm Keepalive +.Cm KeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive. .Pp @@ -417,20 +441,20 @@ is left at the default, unresponsive ssh clients will be disconnected after approximately 45 seconds. .It Cm DenyGroups -This keyword can be followed by a number of group names, separated +This keyword can be followed by a list of group name patterns, separated by spaces. -Users whose primary group or supplementary group list matches -one of the patterns aren't allowed to log in. +Login is disallowed for users whose primary group or supplementary +group list matches one of the patterns. .Ql \&* and .Ql ? can be used as wildcards in the patterns. Only group names are valid; a numerical group ID is not recognized. -By default login is allowed regardless of the group list. +By default, login is allowed for all groups. .Pp .It Cm DenyUsers -This keyword can be followed by a number of user names, separated +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. .Ql \&* @@ -438,7 +462,10 @@ .Ql ? can be used as wildcards in the patterns. Only user names are valid; a numerical user ID is not recognized. -By default login is allowed regardless of the user name. +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. .It Cm GatewayPorts Specifies whether remote hosts are allowed to connect to ports forwarded for the client. @@ -467,9 +494,15 @@ The default is .Dq no . .It Cm HostKey -Specifies the file containing the private host keys (default -.Pa /etc/ssh_host_key ) -used by SSH protocol versions 1 and 2. +Specifies a file containing a private host key +used by SSH. +The default is +.Pa /etc/ssh_host_key +for protocol version 1, and +.Pa /etc/ssh_host_rsa_key +and +.Pa /etc/ssh_host_dsa_key +for protocol version 2. Note that .Nm will refuse to use a file if it is group/world-accessible. @@ -509,7 +542,7 @@ The default is .Dq no . .It Cm KeepAlive -Specifies whether the system should send keepalive messages to the +Specifies whether the system should send TCP keepalive messages to the other side. If they are sent, death of the connection or crash of one of the machines will be properly noticed. @@ -524,12 +557,11 @@ The default is .Dq yes (to send keepalives), and the server will notice -if the network goes down or the client host reboots. +if the network goes down or the client host crashes. This avoids infinitely hanging sessions. .Pp To disable keepalives, the value should be set to -.Dq no -in both the server and the client configuration files. +.Dq no . .It Cm KerberosAuthentication Specifies whether Kerberos authentication is allowed. This can be in the form of a Kerberos ticket, or if @@ -539,7 +571,7 @@ To use this option, the server needs a Kerberos servtab which allows the verification of the KDC's identity. Default is -.Dq yes . +.Dq no . .It Cm KerberosOrLocalPasswd If set then if password authentication through Kerberos fails then the password will be validated via any additional local mechanism @@ -612,9 +644,10 @@ Gives the verbosity level that is used when logging messages from .Nm sshd . The possible values are: -QUIET, FATAL, ERROR, INFO, VERBOSE and DEBUG. -The default is INFO. -Logging with level DEBUG violates the privacy of users +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. .It Cm MACs Specifies the available MAC (message authentication code) algorithms. @@ -733,14 +766,6 @@ The default is .Dq yes . Note that this option applies to protocol version 2 only. -.It Cm ReverseMappingCheck -Specifies whether -.Nm -should try to verify the remote host name and check that -the resolved host name for the remote IP address maps back to the -very same IP address. -The default is -.Dq no . .It Cm RhostsAuthentication Specifies whether authentication using rhosts or /etc/hosts.equiv files is sufficient. @@ -807,7 +832,27 @@ .Xr login 1 does not know how to handle .Xr xauth 1 -cookies. +cookies. If +.Cm UsePrivilegeSeparation +is specified, it will be disabled after authentication. +.It Cm UsePrivilegeSeparation +Specifies whether +.Nm +separated privileges by creating an unprivileged child process +to deal with incoming network traffic. After successful authentication, +another process will be created that has the privilege of the authenticated +user. The goal of privilege separation is to prevent privilege +escalation by containing any corruption within the unprivileged processes. +The default is +.Dq no . +.It Cm VerifyReverseMapping +Specifies whether +.Nm +should try to verify the remote host name and check that +the resolved host name for the remote IP address maps back to the +very same IP address. +The default is +.Dq no . .It Cm X11DisplayOffset Specifies the first display number available for .Nm sshd Ns 's @@ -825,6 +870,31 @@ X11 forwarding is automatically disabled if .Cm UseLogin is enabled. +.It Cm X11UseLocalhost +Specifies whether +.Nm +should bind the X11 forwarding server to the loopback address or to +the wildcard address. By default, +.Nm +binds the forwarding server to the loopback address and sets the +hostname part of the +.Ev DISPLAY +environment variable to +.Dq localhost . +This prevents remote hosts from connecting to the fake display. +However, some older X11 clients may not function with this +configuration. +.Cm X11UseLocalhost +may be set to +.Dq no +to specify that the forwarding server should be bound to the wildcard +address. +The argument must be +.Dq yes +or +.Dq no . +The default is +.Dq yes . .It Cm XAuthLocation Specifies the location of the .Xr xauth 1 @@ -958,6 +1028,10 @@ .Pa id_rsa.pub file and edit it. .Pp +.Nm +enforces a minimum RSA key modulus size for protocol 1 +and protocol 2 keys of 768 bits. +.Pp The options (if present) consist of comma-separated option specifications. No spaces are permitted, except within double quotes. @@ -1006,6 +1080,9 @@ Environment variables set this way override other default environment values. Multiple options of this type are permitted. +This option is automatically disabled if +.Cm UseLogin +is enabled. .It Cm no-port-forwarding Forbids TCP/IP forwarding when this key is used for authentication. Any port forward requests by the client will return an error. @@ -1239,13 +1316,17 @@ .It Pa $HOME/.ssh/rc 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 X11 spoofing is in use, this will receive the "proto cookie" pair in -standard input (and +It must not produce any output on stdout; stderr must be used +instead. +If X11 forwarding is in use, it will receive the "proto cookie" pair in +its standard input (and .Ev DISPLAY -in environment). -This must call +in its environment). +The script must call .Xr xauth 1 -in that case. +because +.Nm +will not run xauth automatically to add X11 cookies. .Pp The primary purpose of this file is to run any initialization routines which may be needed before the user's home directory becomes @@ -1254,15 +1335,22 @@ This file will probably contain some initialization code followed by something similar to: .Bd -literal - if read proto cookie; then - echo add $DISPLAY $proto $cookie | xauth -q - +if read proto cookie && [ -n "$DISPLAY" ]; then + if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then + # X11UseLocalhost=yes + xauth add unix:`echo $DISPLAY | + cut -c11-` $proto $cookie + else + # X11UseLocalhost=no + xauth add $DISPLAY $proto $cookie fi +fi .Ed .Pp 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 add the cookie. .Pp This file should be writable only by the user, and need not be readable by anyone else. @@ -1282,6 +1370,8 @@ created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. +Niels Provos and Markus Friedl contributed support +for privilege separation. .Sh SEE ALSO .Xr scp 1 , .Xr sftp 1 , @@ -1299,8 +1389,8 @@ .%A T. Rinne .%A S. Lehtinen .%T "SSH Protocol Architecture" -.%N draft-ietf-secsh-architecture-09.txt -.%D July 2001 +.%N draft-ietf-secsh-architecture-12.txt +.%D January 2002 .%O work in progress material .Re .Rs @@ -1308,7 +1398,7 @@ .%A N. Provos .%A W. A. Simpson .%T "Diffie-Hellman Group Exchange for the SSH Transport Layer Protocol" -.%N draft-ietf-secsh-dh-group-exchange-01.txt -.%D April 2001 +.%N draft-ietf-secsh-dh-group-exchange-02.txt +.%D January 2002 .%O work in progress material .Re