From da89cf4dea90eaed324c80b9062f1eed13acd107 Mon Sep 17 00:00:00 2001 From: mouring Date: Mon, 23 Apr 2001 13:02:16 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2001/04/22 23:58:36 [ssh-keygen.1 ssh.1 sshd.8] document hostbased and other cleanup --- ChangeLog | 6 +++ ssh-keygen.1 | 6 +-- ssh.1 | 100 ++++++++++++++++++++++++++---------------- sshd.8 | 121 ++++++++++++++++++++++++++++++++++----------------- 4 files changed, 152 insertions(+), 81 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f9d62cd..f1350f32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20010424 + - OpenBSD CVS Sync + - markus@cvs.openbsd.org 2001/04/22 23:58:36 + [ssh-keygen.1 ssh.1 sshd.8] + document hostbased and other cleanup + 20010422 - OpenBSD CVS Sync - markus@cvs.openbsd.org 2001/04/20 16:32:22 diff --git a/ssh-keygen.1 b/ssh-keygen.1 index e2e4bc45..613bc95d 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.38 2001/04/22 13:41:02 markus Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.39 2001/04/22 23:58:36 markus Exp $ .\" .\" -*- nroff -*- .\" @@ -81,10 +81,10 @@ generates, manages and converts authentication keys for .Xr ssh 1 . .Nm -defaults to generating a RSA1 key for use by protocols 1.3 and 1.5; +defaults to generating a RSA1 key for use by SSH protocol version 1. specifying the .Fl t -option allows you to create a key for use by protocol 2.0. +option allows you to create a key for use by SSH protocol version 2. .Pp Normally each user wishing to use SSH with RSA or DSA authentication runs this once to create the authentication diff --git a/ssh.1 b/ssh.1 index 4757a12d..0d26197b 100644 --- a/ssh.1 +++ b/ssh.1 @@ -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: ssh.1,v 1.106 2001/04/22 13:32:27 markus Exp $ +.\" $OpenBSD: ssh.1,v 1.107 2001/04/22 23:58:36 markus Exp $ .Dd September 25, 1999 .Dt SSH 1 .Os @@ -110,7 +110,7 @@ permitted to log in. This form of authentication alone is normally not allowed by the server because it is not secure. .Pp -The second (and primary) authentication method is the +The second authentication method is the .Pa rhosts or .Pa hosts.equiv @@ -205,13 +205,18 @@ the password cannot be seen by someone listening on the network. .Ss SSH protocol version 2 .Pp When a user connects using the protocol version 2 -different authentication methods are available: -At first, the client attempts to authenticate using the public key method. -If this method fails password authentication is tried. +different authentication methods are available. +Using the default values for +.Cm PreferredAuthentications , +the client will try to authenticate first using the public key method; +if this method fails password authentication is attempted, +and finally if this method fails keyboard-interactive authentication +is attempted. +If this method fails password authentication is +tried. .Pp The public key method is similar to RSA authentication described -in the previous section except that the DSA or RSA algorithm is used -instead. +in the previous section and allows the RSA or DSA algorithm to be used: The client uses his private key, .Pa $HOME/.ssh/id_dsa or @@ -225,8 +230,10 @@ and is only known to the client and the server. .Pp If public key authentication fails or is not available a password can be sent encrypted to the remote host for proving the user's identity. -This protocol 2 implementation does not yet support Kerberos or -S/Key authentication. +.Pp +Additionally, +.Nm +supports hostbased or challenge response authentication. .Pp Protocol 2 provides additional mechanisms for confidentiality (the traffic is encrypted using 3DES, Blowfish, CAST128 or Arcfour) @@ -286,7 +293,7 @@ Background ssh List forwarded connections .It Cm ~& Background ssh at logout when waiting for forwarded connection / X11 sessions -to terminate (this does not currently work for SSH protocol version 2) +to terminate (protocol version 1 only) .It Cm ~? Display a list of escape characters .It Cm ~R @@ -573,6 +580,8 @@ from the local machine. Port forwardings can also be specified in the configuration file. Privileged ports can be forwarded only when logging in as root on the remote machine. +IPv6 addresses can be specified with an alternative syntax: +.Ar port/host/hostport .It Fl 1 Forces .Nm @@ -645,6 +654,7 @@ The argument to this keyword must be .Dq yes or .Dq no . +This option applies to protocol version 1 only. .It Cm BatchMode If set to .Dq yes , @@ -687,8 +697,7 @@ The default is .Pp .Bd -literal ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, - aes192-cbc,aes256-cbc,rijndael128-cbc,rijndael192-cbc, - rijndael256-cbc,rijndael-cbc@lysator.liu.se'' + aes192-cbc,aes256-cbc'' .Ed .It Cm Compression Specifies whether to use compression. @@ -704,21 +713,13 @@ The argument must be an integer from 1 (fast) to 9 (slow, best). The default level is 6, which is good for most applications. The meaning of the values is the same as in .Xr gzip 1 . +Note that this option applies to protocol version 1 only. .It Cm ConnectionAttempts Specifies the number of tries (one per second) to make before falling back to rsh or exiting. The argument must be an integer. This may be useful in scripts if the connection sometimes fails. The default is 4. -.It Cm PubkeyAuthentication -Specifies whether to try public key authentication. -The argument to this keyword must be -.Dq yes -or -.Dq no . -The default is -.Dq yes . -Note that this option applies to protocol version 2 only. .It Cm EscapeChar Sets the escape character (default: .Ql ~ ) . @@ -783,17 +784,29 @@ host key database instead of Specifies a file to use for the protocol version 2 global host key database instead of .Pa /etc/ssh_known_hosts2 . -.It Cm HostKeyAlias -Specifies an alias that should be used instead of the -real host name when looking up or saving the host key -in the known_hosts files. -This option is useful for tunneling ssh connections -or if you have multiple servers running on a single host. +.It Cm HostbasedAuthentication +Specifies whether to try rhosts based authentication with public key +authentication. +The argument must be +.Dq yes +or +.Dq no . +The default is +.Dq yes . +This option applies to protocol version 2 only and +is similar to +.Cm RhostsRSAAuthentication . .It Cm HostKeyAlgorithms Specfies the protocol version 2 host key algorithms that the client wants to use in order of preference. The default for this option is: .Dq ssh-rsa,ssh-dss +.It Cm HostKeyAlias +Specifies an alias that should be used instead of the +real host name when looking up or saving the host key +in the host key database files. +This option is useful for tunneling ssh connections +or if you have multiple servers running on a single host. .It Cm HostName Specifies the real host name to log into. This can be used to specify nicknames or abbreviations for hosts. @@ -802,7 +815,7 @@ Numeric IP addresses are also permitted (both on the command line and in .Cm HostName specifications). .It Cm IdentityFile -Specifies the file from which the user's RSA authentication identity +Specifies the file from which the user's RSA or DSA authentication identity is read (default .Pa $HOME/.ssh/identity in the user's home directory). @@ -882,7 +895,6 @@ or .Dq no . The default is .Dq yes . -Note that this option applies to both protocol version 1 and 2. .It Cm Port Specifies the port number to connect on the remote host. Default is 22. @@ -934,6 +946,15 @@ Note that .Cm CheckHostIP is not available for connects with a proxy command. .Pp +.It Cm PubkeyAuthentication +Specifies whether to try public key authentication. +The argument to this keyword must be +.Dq yes +or +.Dq no . +The default is +.Dq yes . +This option applies to protocol version 2 only. .It Cm RemoteForward Specifies that a TCP/IP port on the remote machine be forwarded over the secure channel to given host:port from the local machine. @@ -951,13 +972,15 @@ Disabling rhosts authentication may reduce authentication time on slow connections when rhosts authentication is not used. Most servers do not permit RhostsAuthentication because it -is not secure (see RhostsRSAAuthentication). +is not secure (see +.Cm RhostsRSAAuthentication ). The argument to this keyword must be .Dq yes or .Dq no . The default is .Dq yes . +This option applies to protocol version 1 only. .It Cm RhostsRSAAuthentication Specifies whether to try rhosts based authentication with RSA host authentication. @@ -967,6 +990,7 @@ or .Dq no . The default is .Dq yes . +This option applies to protocol version 1 only. .It Cm RSAAuthentication Specifies whether to try RSA authentication. The argument to this keyword must be @@ -1037,13 +1061,13 @@ or .Dq no . The default is .Dq no . -Note that setting this option to -.Dq no -turns off +Note that you need to set this option to +.Dq yes +if you want to use .Cm RhostsAuthentication and .Cm RhostsRSAAuthentication -for older servers. +with older servers. .It Cm User Specifies the user to log in as. This can be useful if you have a different user name on different machines. @@ -1097,7 +1121,9 @@ the host where the shell runs, and n is an integer >= 1. .Nm uses this special value to forward X11 connections over the secure channel. -The user should normally not set DISPLAY explicitly, as that +The user should normally not set +.Ev DISPLAY +explicitly, as that will render the X11 connection insecure (and will require the user to manually copy any required authorization cookies). .It Ev HOME @@ -1211,7 +1237,7 @@ spaces). This file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others. .It Pa $HOME/.ssh/authorized_keys2 -Lists the public keys (DSA/RSA) that can be used for logging in as this user. +Lists the public keys (RSA/DSA) that can be used for logging in as this user. This file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others. .It Pa /etc/ssh_known_hosts, /etc/ssh_known_hosts2 @@ -1219,7 +1245,7 @@ Systemwide list of known host keys. .Pa /etc/ssh_known_hosts contains RSA and .Pa /etc/ssh_known_hosts2 -contains DSA or RSA keys for protocol version 2. +contains RSA or DSA keys for protocol version 2. These files should be prepared by the system administrator to contain the public host keys of all machines in the organization. diff --git a/sshd.8 b/sshd.8 index 5b8380dc..62e3de7c 100644 --- a/sshd.8 +++ b/sshd.8 @@ -34,13 +34,13 @@ .\" (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.119 2001/04/22 13:32:27 markus Exp $ +.\" $OpenBSD: sshd.8,v 1.120 2001/04/22 23:58:36 markus Exp $ .Dd September 25, 1999 .Dt SSHD 8 .Os .Sh NAME .Nm sshd -.Nd OpenSSH ssh daemon +.Nd OpenSSH SSH daemon .Sh SYNOPSIS .Nm sshd .Op Fl deiqD46 @@ -134,8 +134,9 @@ Each host has a host-specific DSA key used to identify the host. However, when the daemon starts, it does not generate a server key. Forward security is provided through a Diffie-Hellman key agreement. This key agreement results in a shared session key. +.Pp The rest of the session is encrypted using a symmetric cipher, currently -Blowfish, 3DES, CAST128, Arcfour, 128 bit AES, or 256 bit AES. +128 bit AES, Blowfish, 3DES, CAST128, Arcfour, 192 bit AES, or 256 bit AES. The client selects the encryption algorithm to use from those offered by the server. Additionally, session integrity is provided @@ -143,8 +144,9 @@ through a cryptographic message authentication code (hmac-sha1 or hmac-md5). .Pp Protocol version 2 provides a public key based -user authentication method (PubkeyAuthentication) -and conventional password authentication. +user (PubkeyAuthentication) or +client host (HostbasedAuthentication) authentication method, +conventional password authentication and challenge response based methods. .Pp .Ss Command execution and data forwarding .Pp @@ -180,7 +182,8 @@ by executing itself with the name it was started as, ie. The options are as follows: .Bl -tag -width Ds .It Fl b Ar bits -Specifies the number of bits in the server key (default 768). +Specifies the number of bits in the ephemeral protocol version 1 +server key (default 768). .Pp .It Fl d Debug mode. @@ -188,8 +191,12 @@ The server sends verbose debug output to the system 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 intended for debugging for the server. -Multiple -d options increases the debugging level. +Multiple -d options increase the debugging level. Maximum is 3. +.It Fl e +When this option is specified, +.Nm +will send the output to the standard error instead of the system log. .It Fl f Ar configuration_file Specifies the name of the configuration file. The default is @@ -210,7 +217,7 @@ This option must be given if is not run as root (as the normal host file is normally not readable by anyone but root). It is possible to have multiple host key files for -the different protocol versions. +the different protocol versions and host key algorithms. .It Fl i Specifies that .Nm @@ -225,8 +232,8 @@ However, with small key sizes (e.g., 512) using from inetd may be feasible. .It Fl k Ar key_gen_time -Specifies how often the server key is regenerated (default 3600 -seconds, or one hour). +Specifies how often the ephemeral protocol version 1 server key is +regenerated (default 3600 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, it becomes impossible to recover the key for decrypting intercepted @@ -263,18 +270,6 @@ When this option is specified will not detach and does not become a daemon. This allows easy monitoring of .Nm sshd . -.It Fl e -When this option is specified, -.Nm -will send the output to the standard error instead of the system log. -.It Fl V Ar client_protocol_id -SSH-2 compatibility mode. -When this option is specified -.Nm -assumes the client has sent the supplied version string -and skips the -Protocol Version Identification Exchange. -This option is not intended to be called directly. .It Fl 4 Forces .Nm @@ -426,6 +421,15 @@ or .Dq no . The default is .Dq no . +.It Cm HostbasedAuthentication +Specifies whether rhosts or /etc/hosts.equiv authentication together +with successful public key client host authentication is allowed +(hostbased authentication). +This option is similar to +.Cm RhostsRSAAuthentication +and applies to protocol version 2 only. +The default is +.Dq no . .It Cm HostKey Specifies the file containing the private host keys (default .Pa /etc/ssh_host_key ) @@ -445,7 +449,12 @@ Specifies that .Pa .rhosts and .Pa .shosts -files will not be used in authentication. +files will not be used in +.Cm RhostsAuthentication , +.Cm RhostsRSAAuthentication +or +.Cm HostbasedAuthentication . +.Pp .Pa /etc/hosts.equiv and .Pa /etc/shosts.equiv @@ -458,7 +467,9 @@ Specifies whether should ignore the user's .Pa $HOME/.ssh/known_hosts during -.Cm RhostsRSAAuthentication . +.Cm RhostsRSAAuthentication +or +.Cm HostbasedAuthentication . The default is .Dq no . .It Cm KeepAlive @@ -511,8 +522,8 @@ file on logout. Default is .Dq yes . .It Cm KeyRegenerationInterval -The server key is automatically regenerated after this many seconds -(if it has been used). +In protocol version 1, the ephemeral server key is automatically regenerated +after this many seconds (if it has been used). The purpose of regeneration is to prevent decrypting captured sessions by later breaking into the machine and stealing the keys. @@ -521,7 +532,7 @@ If the value is 0, the key is never regenerated. The default is 3600 (seconds). .It Cm ListenAddress Specifies the local addresses -.Xr sshd 8 +.Nm should listen on. The following forms may be used: .Pp @@ -547,7 +558,7 @@ The following forms may be used: If .Ar port is not specified, -.Xr sshd 8 +.Nm will listen on the address and all prior .Cm Port options specified. The default is to listen on all local @@ -609,7 +620,6 @@ are refused if the number of unauthenticated connections reaches Specifies whether password authentication is allowed. The default is .Dq yes . -Note that this option applies to both protocol versions 1 and 2. .It Cm PermitEmptyPasswords When password authentication is allowed, it specifies whether the server allows login to accounts with empty password strings. @@ -656,6 +666,8 @@ Specifies the port number that listens on. The default is 22. Multiple options of this type are permitted. +See also +.Cm ListenAddress . .It Cm PrintLastLog Specifies whether .Nm @@ -707,18 +719,20 @@ instead, because it performs RSA-based host authentication in addition to normal rhosts or /etc/hosts.equiv authentication. The default is .Dq no . +This option applies to protocol version 1 only. .It Cm RhostsRSAAuthentication Specifies whether rhosts or /etc/hosts.equiv authentication together with successful RSA host authentication is allowed. The default is .Dq no . +This option applies to protocol version 1 only. .It Cm RSAAuthentication Specifies whether pure RSA authentication is allowed. The default is .Dq yes . -Note that this option applies to protocol version 1 only. +This option applies to protocol version 1 only. .It Cm ServerKeyBits -Defines the number of bits in the server key. +Defines the number of bits in the ephemeral protocol version 1 server key. The minimum value is 512, and the default is 768. .It Cm StrictModes Specifies whether @@ -825,12 +839,12 @@ Runs user's shell or command. The .Pa $HOME/.ssh/authorized_keys file lists the RSA keys that are -permitted for RSA authentication in SSH protocols 1.3 and 1.5 +permitted for RSA authentication in protocol version 1 Similarly, the .Pa $HOME/.ssh/authorized_keys2 file lists the DSA and RSA keys that are permitted for public key authentication (PubkeyAuthentication) -in SSH protocol 2.0. +in protocol version 2. .Pp Each line of the file contains one key (empty lines and lines starting with a @@ -994,7 +1008,10 @@ or by taking .Pa /etc/ssh_host_key.pub and adding the host names at the front. .Ss Examples -closenet,closenet.hut.fi,.\|.\|.\|,130.233.208.41 1024 37 159.\|.\|.93 closenet.hut.fi +.Bd -literal +closenet,.\|.\|.\|,130.233.208.41 1024 37 159.\|.\|.93 closenet.hut.fi +cvs.openbsd.org,199.185.137.3 ssh-rsa AAAA1234.....= +.Ed .Sh FILES .Bl -tag -width Ds .It Pa /etc/sshd_config @@ -1003,16 +1020,14 @@ Contains configuration data for This file should be writable by root only, but it is recommended (though not necessary) that it be world-readable. .It Pa /etc/ssh_host_key, /etc/ssh_host_dsa_key, /etc/ssh_host_rsa_key -These three files contain the private parts of the -(SSH1, SSH2 DSA, and SSH2 RSA) host keys. +These three files contain the private parts of the host keys. These files should only be owned by root, readable only by root, and not accessible to others. Note that .Nm does not start if this file is group/world-accessible. .It Pa /etc/ssh_host_key.pub, /etc/ssh_host_dsa_key.pub, /etc/ssh_host_rsa_key.pub -These three files contain the public parts of the -(SSH1, SSH2 DSA, and SSH2 RSA) host keys. +These three files contain the public parts of the host keys. These files should be world-readable but writable only by root. Their contents should match the respective private parts. @@ -1042,7 +1057,7 @@ Users will place the contents of their files into this file, as described in .Xr ssh-keygen 1 . .It Pa $HOME/.ssh/authorized_keys2 -Lists the DSA keys that can be used to log into the user's account. +Lists the public keys (RSA or DSA) that can be used to log into the user's account. 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 volume). @@ -1065,6 +1080,17 @@ These files should be writable only by root/the owner. should be world-readable, and .Pa $HOME/.ssh/known_hosts can but need not be world-readable. +.It Pa "/etc/ssh_known_hosts2" and "$HOME/.ssh/known_hosts2" +These files are consulted when using protocol version 2 hostbased +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 same files +to verify that it is connecting to the correct remote host. +These files should be writable only by root/the owner. +.Pa /etc/ssh_known_hosts2 +should be world-readable, and +.Pa $HOME/.ssh/known_hosts2 +can but need not be world-readable. .It Pa /etc/nologin If this file exists, .Nm @@ -1162,8 +1188,12 @@ which may be needed before the user's home directory becomes accessible; AFS is a particular example of such an environment. .Pp This file will probably contain some initialization code followed by -something similar to: "if read proto cookie; then echo add $DISPLAY -$proto $cookie | xauth -q -; fi". +something similar to: +.Bd -literal + if read proto cookie; then + echo add $DISPLAY $proto $cookie | xauth -q - + fi +.Ed .Pp If this file does not exist, .Pa /etc/sshrc @@ -1209,3 +1239,12 @@ protocol versions 1.5 and 2.0. .%D January 2001 .%O work in progress material .Re +.Rs +.%A M. Friedl +.%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-00.txt +.%D January 2001 +.%O work in progress material +.Re -- 2.45.2