diff --git a/sshd.8 b/sshd.8
index a204901..3c24210 100644
--- a/sshd.8
+++ b/sshd.8
@@ -9,7 +9,7 @@
 .\"
 .\" Created: Sat Apr 22 21:55:14 1995 ylo
 .\"
-.\" $Id: sshd.8,v 1.14 2000/03/17 12:40:18 damien Exp $
+.\" $Id: sshd.8,v 1.15 2000/03/26 03:04:55 damien Exp $
 .\"
 .Dd September 25, 1999
 .Dt SSHD 8
@@ -33,39 +33,48 @@
 .Xr ssh 1 .
 Together these programs replace rlogin and rsh programs, and
 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.
 .Pp
 .Nm
-is the daemon that listens for connections from clients.  It is
-normally started at boot from 
+is the daemon that listens for connections from clients.
+It is normally started at boot from 
 .Pa /etc/rc .
 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,
 and data exchange.
 .Pp
 .Nm
-works as follows.  Each host has a host-specific RSA key
-(normally 1024 bits) used to identify the host.  Additionally, when
+works as follows.
+Each host has a host-specific RSA key
+(normally 1024 bits) used to identify the host.
+Additionally, when
 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
 is never stored on disk.
 .Pp
 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.
-The client then generates a 256 bit random number.  It encrypts this
+The client then generates a 256 bit random number.
+It encrypts this
 random number using both the host key and the server key, and sends
-the encrypted number to the server.  Both sides then start to use this
+the encrypted number to the server.
+Both sides then start to use this
 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 Blowfish and 3DES, with 3DES
-being is used by default.  The client selects the encryption algorithm
+being is used by default.
+The client selects the encryption algorithm
 to use from those offered by the server.
 .Pp
-Next, the server and the client enter an authentication dialog.  The
-client tries to authenticate itself using
+Next, the server and the client enter an authentication dialog.
+The client tries to authenticate itself using
 .Pa .rhosts
 authentication,
 .Pa .rhosts
@@ -75,7 +84,8 @@
 .Pp
 Rhosts authentication is normally disabled
 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
 .Xr rshd 8 ,
 .Xr rlogind 8 ,
 .Xr rexecd 8 ,
@@ -88,13 +98,15 @@
 into that machine).
 .Pp
 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,
 forwarding TCP/IP connections, or forwarding the authentication agent
 connection over the secure channel.
 .Pp
 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
 command on the server side, and the user terminal in the client side.
 .Pp
@@ -104,7 +116,8 @@
 .Pp
 .Nm
 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.
 .Pp
 .Nm
@@ -117,20 +130,23 @@
 Specifies the number of bits in the server key (default 768).
 .Pp
 .It Fl d
-Debug mode.  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.
+Debug mode.
+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.
 .It Fl f Ar configuration_file
-Specifies the name of the configuration file.  The default is
+Specifies the name of the configuration file.
+The default is
 .Pa /etc/sshd_config .
 .Nm
 refuses to start if there is no configuration file.
 .It Fl g Ar login_grace_time
 Gives the grace time for clients to authenticate themselves (default
-300 seconds).  If the client fails to authenticate the user within
-this many seconds, the server disconnects and exits.  A value of zero
-indicates no limit.
+300 seconds).
+If the client fails to authenticate the user within
+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 ) .
@@ -145,24 +161,28 @@
 .Nm
 is normally not run
 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
-would have to wait too long if the key was regenerated every time.
+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.
 However, with small key sizes (e.g., 512) using
 .Nm
 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).  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,
 it becomes impossible to recover the key for decrypting intercepted
 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.
 .It Fl p Ar port
 Specifies the port on which the server listens for connections
 (default 22).
 .It Fl 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.
 .It Fl Q
 Do not print an error message if RSA support is missing.
@@ -188,39 +208,43 @@
 .Pa /etc/sshd_config
 (or the file specified with
 .Fl f
-on the command line).  The file
-contains keyword-value pairs, one per line.  Lines starting with
+on the command line).
+The file contains keyword-value pairs, one per line.
+Lines starting with
 .Ql #
 and empty lines are interpreted as comments.
 .Pp
 The following keywords are possible.
 .Bl -tag -width Ds
 .It Cm AFSTokenPassing
-Specifies whether an AFS token may be forwarded to the server. Default is
+Specifies whether an AFS token may be forwarded to the server.
+Default is
 .Dq yes .
 .It Cm AllowGroups
 This keyword can be followed by a number of group names, separated
-by spaces.  If specified, login is allowed only for users whose primary
+by spaces.
+If specified, login is allowed only for users whose primary
 group 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 isn't recognized.  By default login is allowed regardless of
-the primary group.
+wildcards in the patterns.
+Only group names are valid, a numerical group ID isn't recognized.
+By default login is allowed regardless of the primary group.
 .Pp
 .It Cm AllowUsers
 This keyword can be followed by a number of user names, separated
-by spaces.  If specified, login is allowed only for users names that
+by spaces.
+If specified, login is allowed only for users names that
 match one of the patterns.
 .Ql \&*
 and
 .Ql ?
 can be used as
-wildcards in the patterns.  Only user names are valid, a numerical user
-id isn't recognized.  By default login is allowed regardless of
-the user name.
+wildcards in the patterns.
+Only user names are valid, a numerical user ID isn't recognized.
+By default login is allowed regardless of the user name.
 .Pp
 .It Cm CheckMail
 Specifies whether
@@ -230,27 +254,27 @@
 .Dq no .
 .It Cm DenyGroups
 This keyword can be followed by a number of group names, separated
-by spaces.  Users whose primary group matches one of the patterns
+by spaces.
+Users whose primary group matches one of the patterns
 aren't allowed to log in.
 .Ql \&*
 and
 .Ql ?
 can be used as
-wildcards in the patterns.  Only group names are valid, a numerical group
-id isn't recognized.  By default login is allowed regardless of
-the primary group.
+wildcards in the patterns.
+Only group names are valid, a numerical group ID isn't recognized.
+By default login is allowed regardless of the primary group.
 .Pp
 .It Cm DenyUsers
 This keyword can be followed by a number of user names, separated
-by spaces.  Login is disallowed for user names that match
-one of the patterns.
+by spaces.
+Login is disallowed for user names that match one of the patterns.
 .Ql \&*
 and
 .Ql ?
-can be used as
-wildcards in the patterns.  Only user names are valid, a numerical user
-id isn't recognized.  By default login is allowed regardless of
-the user name.
+can be used as wildcards in the patterns.
+Only user names are valid, a numerical user ID isn't recognized.
+By default login is allowed regardless of the user name.
 .It Cm HostKey
 Specifies the file containing the private host key (default
 .Pa /etc/ssh_host_key ) .
@@ -266,7 +290,8 @@
 .Pa /etc/hosts.equiv
 and
 .Pa /etc/shosts.equiv 
-are still used.  The default is 
+are still used.
+The default is 
 .Dq yes .
 .It Cm IgnoreUserKnownHosts
 Specifies whether
@@ -279,10 +304,13 @@
 .Dq no .
 .It Cm KeepAlive
 Specifies whether the system should send keepalive messages to the
-other side.  If they are sent, death of the connection or crash of one
-of the machines will be properly noticed.  However, this means that
+other side.
+If they are sent, death of the connection or crash of one
+of the machines will be properly noticed.
+However, this means that
 connections will die if the route is down temporarily, and some people
-find it annoying.  On the other hand, if keepalives are not send,
+find it annoying.
+On the other hand, if keepalives are not send,
 sessions may hang indefinitely on the server, leaving
 .Dq ghost
 users and consuming server resources.
@@ -290,25 +318,27 @@
 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
-infinitely hanging sessions.
+if the network goes down or the client host reboots.
+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.
 .It Cm KerberosAuthentication
-Specifies whether Kerberos authentication is allowed. This can
-be in the form of a Kerberos ticket, or if
+Specifies whether Kerberos authentication is allowed.
+This can be in the form of a Kerberos ticket, or if
 .Cm PasswordAuthentication
 is yes, the password provided by the user will be validated through
-the Kerberos KDC. Default is
+the Kerberos KDC.
+Default is
 .Dq yes .
 .It Cm KerberosOrLocalPasswd
 If set then if password authentication through Kerberos fails then
 the password will be validated via any additional local mechanism
 such as
 .Pa /etc/passwd
-or SecurID. Default is
+or SecurID.
+Default is
 .Dq yes .
 .It Cm KerberosTgtPassing
 Specifies whether a Kerberos TGT may be forwarded to the server.
@@ -317,15 +347,18 @@
 as this only works when the Kerberos KDC is actually an AFS kaserver.
 .It Cm KerberosTicketCleanup
 Specifies whether to automatically destroy the user's ticket cache
-file on logout. Default is
+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).  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
-stealing the keys.  The key is never stored anywhere.  If the value is
-0, the key is never regenerated.  The default is 3600
-(seconds).
+stealing the keys.
+The key is never stored anywhere.
+If the value is 0, the key is never regenerated.
+The default is 3600 (seconds).
 .It Cm ListenAddress
 Specifies what local address
 .Nm
@@ -337,7 +370,8 @@
 options must precede this option.
 .It Cm LoginGraceTime
 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).
 .It Cm LogLevel
 Gives the verbosity level that is used when logging messages from
@@ -353,8 +387,8 @@
 .Dq yes .
 .It Cm PermitEmptyPasswords
 When password authentication is allowed, it specifies whether the
-server allows login to accounts with empty password strings.  The default
-is
+server allows login to accounts with empty password strings.
+The default is
 .Dq no .
 .It Cm PermitRootLogin
 Specifies whether the root can log in using
@@ -379,24 +413,27 @@
 .It Cm Port
 Specifies the port number that
 .Nm
-listens on.  The default is 22.
+listens on.
+The default is 22.
 Multiple options of this type are permitted.
 .It Cm PrintMotd
 Specifies whether
 .Nm
 should print 
 .Pa /etc/motd
-when a user logs in interactively.  (On some systems it is also
-printed by the shell,
+when a user logs in interactively.
+(On some systems it is also printed by the shell,
 .Pa /etc/profile ,
-or equivalent.)  The default is
+or equivalent.)
+The default is
 .Dq yes .
 .It Cm RandomSeed
-Obsolete.  Random number generation uses other techniques.
+Obsolete.
+Random number generation uses other techniques.
 .It Cm RhostsAuthentication
 Specifies whether authentication using rhosts or /etc/hosts.equiv
-files is sufficient.  Normally, this method should not be permitted
-because it is insecure. 
+files is sufficient.
+Normally, this method should not be permitted because it is insecure.
 .Cm RhostsRSAAuthentication
 should be used
 instead, because it performs RSA-based host authentication in addition
@@ -405,18 +442,21 @@
 .Dq no .
 .It Cm RhostsRSAAuthentication
 Specifies whether rhosts or /etc/hosts.equiv authentication together
-with successful RSA host authentication is allowed.  The default is
+with successful RSA host authentication is allowed.
+The default is
 .Dq no .
 .It Cm RSAAuthentication
-Specifies whether pure RSA authentication is allowed.  The default is
+Specifies whether pure RSA authentication is allowed.
+The default is
 .Dq yes .
 .It Cm ServerKeyBits
-Defines the number of bits in the server key.  The minimum value is
-512, and the default is 768.
+Defines the number of bits in the server key.
+The minimum value is 512, and the default is 768.
 .It Cm SkeyAuthentication
 Specifies whether
 .Xr skey 1 
-authentication is allowed.  The default is
+authentication is allowed.
+The default is
 .Dq yes .
 Note that s/key authentication is enabled only if
 .Cm PasswordAuthentication
@@ -425,29 +465,34 @@
 Specifies whether
 .Nm
 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
+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
 .Dq yes .
 .It Cm SyslogFacility
 Gives the facility code that is used when logging messages from
 .Nm sshd .
 The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
-LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.  The default is AUTH.
+LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
+The default is AUTH.
 .It Cm UseLogin
 Specifies whether
 .Xr login 1
-is used. The default is
+is used.
+The default is
 .Dq no .
 .It Cm X11DisplayOffset
 Specifies the first display number available for
 .Nm sshd Ns 's
-X11 forwarding.  This prevents
+X11 forwarding.
+This prevents
 .Nm
 from interfering with real X11 servers.
 The default is 10.
 .It Cm X11Forwarding
-Specifies whether X11 forwarding is permitted.  The default is
+Specifies whether X11 forwarding is permitted.
+The default is
 .Dq no .
 Note that disabling X11 forwarding does not improve security in any
 way, as users can always install their own forwarders.
@@ -489,7 +534,8 @@
 exists, runs it; else if
 .Pa /etc/sshrc
 exists, runs
-it; otherwise runs xauth.  The
+it; otherwise runs xauth.
+The
 .Dq rc
 files are given the X11
 authentication protocol and cookie in standard input.
@@ -500,12 +546,15 @@
 The 
 .Pa $HOME/.ssh/authorized_keys
 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
 .Ql #
 are ignored as
-comments).  Each line consists of the following fields, separated by
-spaces: options, bits, exponent, modulus, comment.  The options field
+comments).
+Each line consists of the following fields, separated by
+spaces: options, bits, exponent, modulus, comment.
+The options field
 is optional; its presence is determined by whether the line starts
 with a number or not (the option field never starts with a number).
 The bits, exponent, modulus and comment fields give the RSA key; the
@@ -513,47 +562,58 @@
 user to identify the key).
 .Pp
 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
-them in; instead, copy the 
+(because of the size of the RSA key modulus).
+You don't want to type them in; instead, copy the
 .Pa identity.pub
 file and edit it.
 .Pp
 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:
 .Bl -tag -width Ds
 .It Cm from="pattern-list"
 Specifies that in addition to RSA authentication, the canonical name
 of the remote host must be present in the comma-separated list of
-patterns ('*' and '?' serve as wildcards).  The list may also contain
-patterns negated by prefixing them with '!'; if the canonical host
-name matches a negated pattern, the key is not accepted.  The purpose
+patterns
+.Pf ( Ql *
+and
+.Ql ?
+serve as wildcards).
+The list may also contain
+patterns negated by prefixing them with
+.Ql ! ;
+if the canonical host name matches a negated pattern, the key is not accepted.
+The purpose
 of this option is to optionally increase security: RSA authentication
 by itself does not trust the network or name servers or anything (but
 the key); however, if somebody somehow steals the key, the key
-permits an intruder to log in from anywhere in the world.  This
-additional option makes using a stolen key more difficult (name
+permits an intruder to log in from anywhere in the world.
+This additional option makes using a stolen key more difficult (name
 servers and/or routers would have to be compromised in addition to
 just the key).
 .It Cm command="command"
 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;
-otherwise it is run without a tty.  A quote may be included in the
-command by quoting it with a backslash.  This option might be useful
-to restrict certain RSA keys to perform just a specific operation.  An
-example might be a key that permits remote backups but nothing
-else.  Notice that the client may specify TCP/IP and/or X11
+otherwise it is run without a tty.
+A quote may be included in the command by quoting it with a backslash.
+This option might be useful
+to restrict certain RSA keys to perform just a specific operation.
+An example might be a key that permits remote backups but nothing else.
+Notice that the client may specify TCP/IP and/or X11
 forwardings unless they are explicitly prohibited.
 .It Cm environment="NAME=value"
 Specifies that the string is to be added to the environment when
-logging in using this key.  Environment variables set this way
-override other default environment values.  Multiple options of this
-type are permitted.
+logging in using this key.
+Environment variables set this way
+override other default environment values.
+Multiple options of this type are permitted.
 .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.  This
-might be used, e.g., in connection with the
+Any port forward requests by the client will return an error.
+This might be used, e.g., in connection with the
 .Cm command
 option.
 .It Cm no-X11-forwarding
@@ -576,19 +636,21 @@
 .Pa /etc/ssh_known_hosts
 and 
 .Pa $HOME/.ssh/known_hosts
-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
+files contain host public keys for all known hosts.
+The global file should
+be prepared by the administrator (optional), and the per-user file is
 maintained automatically: whenever the user connects an unknown host
-its key is added to the per-user file.  
+its key is added to the per-user file.
 .Pp
 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.
 .Pp
 Hostnames is a comma-separated list of patterns ('*' and '?' act as
 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 server).  A pattern may also be preceded
-by
+name (when authenticating a server).
+A pattern may also be preceded 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
@@ -604,10 +666,13 @@
 and empty lines are ignored as comments.
 .Pp
 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
-names.  This will inevitably happen when short forms of host names
-from different domains are put in the file.  It is possible
+names.
+This will inevitably happen when short forms of host names
+from different domains are put in the file.
+It is possible
 that the files contain conflicting information; authentication is
 accepted if valid information can be found from either file.
 .Pp
@@ -636,7 +701,9 @@
 .It Pa /etc/ssh_host_key.pub
 Contains the public part of the host key.
 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
 the user so its contents can be copied to known hosts files.
 These two files are created using
@@ -646,21 +713,22 @@
 .Nm
 listening for connections (if there are several daemons running
 concurrently for different ports, this contains the pid of the one
-started last).  The contents of this file are not sensitive; it can be
-world-readable.
+started last).
+The contents of this file are not sensitive; it can be world-readable.
 .It Pa $HOME/.ssh/authorized_keys
 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
 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
-format of this file is described above.
+volume).
+It is recommended that it not be accessible by others.
+The format of this file is described above.
 .It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts"
 These files are consulted when using rhosts with RSA host
-authentication to check the public key of the host.  The key must be
-listed in one of these files to be accepted.
+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 the remote host is the one we intended to
-connect. These files should be writable only by root/the owner.
+to verify that the remote host is the one we intended to connect.
+These files should be writable only by root/the owner.
 .Pa /etc/ssh_known_hosts
 should be world-readable, and
 .Pa $HOME/.ssh/known_hosts
@@ -668,9 +736,11 @@
 .It Pa /etc/nologin
 If this file exists, 
 .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
-refused.  The file should be world-readable.
+refused.
+The file should be world-readable.
 .It Pa /etc/hosts.allow, /etc/hosts.deny
 If compiled with
 .Sy LIBWRAP
@@ -678,13 +748,16 @@
 .Xr hosts_access 5 .
 .It Pa $HOME/.rhosts
 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
-without password.  The same file is used by rlogind and rshd.
+line.
+The given user on the corresponding host is permitted to log in
+without password.
+The same file is used by rlogind and rshd.
 The file must
 be writable only by the user; it is recommended that it not be
 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
 in the group.
 .It Pa $HOME/.shosts
@@ -696,21 +769,26 @@
 .Pa /etc/hosts.equiv
 This file is used during
 .Pa .rhosts
-authentication.  In the
-simplest form, this file contains host names, one per line.  Users on
+authentication.
+In the simplest form, this file contains host names, one per line.
+Users on
 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
 .Em any
-user on this machine (except root).  Additionally, the syntax
+user on this machine (except root).
+Additionally, the syntax
 .Dq +@group
-can be used to specify netgroups.  Negated entries start with
+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
 automatically permitted provided the client and server user names are the
-same.  Additionally, successful RSA host authentication is normally
-required.  This file must be writable only by root; it is recommended
+same.
+Additionally, successful RSA host authentication is normally required.
+This file must be writable only by root; it is recommended
 that it be world-readable.
 .Pp
 .Sy "Warning: It is almost never a good idea to use user names in"
@@ -718,8 +796,9 @@
 Beware that it really means that the named user(s) can log in as
 .Em anybody ,
 which includes bin, daemon, adm, and other accounts that own critical
-binaries and directories.  Using a user name practically grants the
-user root access.  The only valid use for user names that I can think
+binaries and directories.
+Using a user name practically grants the user root access.
+The only valid use for user names that I can think
 of is in negative entries.
 .Pp
 Note that this warning also applies to rsh/rlogin.
@@ -729,18 +808,20 @@
 However, this file may be useful in environments that want to run both
 rsh/rlogin and ssh.
 .It Pa $HOME/.ssh/environment
-This file is read into the environment at login (if it exists).  It
-can only contain empty lines, comment lines (that start with
+This file is read into the environment at login (if it exists).
+It can only contain empty lines, comment lines (that start with
 .Ql # ) ,
-and assignment lines of the form name=value.  The file should be writable
+and assignment lines of the form name=value.
+The file should be writable
 only by the user; it need not be readable by anyone else.
 .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
+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
 .Ev DISPLAY
-in environment).  This must call
+in environment).
+This must call
 .Xr xauth 1
 in that case.
 .Pp
@@ -763,12 +844,13 @@
 Like
 .Pa $HOME/.ssh/rc .
 This can be used to specify
-machine-specific login-time initializations globally.  This file
-should be writable only by root, and should be world-readable.
+machine-specific login-time initializations globally.
+This file should be writable only by root, and should be world-readable.
 .Sh AUTHOR
 OpenSSH
 is a derivative of the original (free) ssh 1.2.12 release by Tatu Ylonen,
-but with bugs removed and newer features re-added.   Rapidly after the
+but with bugs removed and newer features re-added.
+Rapidly after the
 1.2.12 release, newer versions of the original ssh bore successively
 more restrictive licenses, and thus demand for a free version was born.
 This version of OpenSSH
