RSHD(8) | System Manager's Manual | RSHD(8) |
rshd
— remote
shell server
rshd |
[-an ] |
The rshd
server is the server for the
rcmd(3) routine and, consequently, for the
rsh(1) program. The server provides remote execution
facilities with authentication based on privileged port numbers from trusted
hosts.
The rshd
server listens for service
requests at the port indicated in the ``cmd'' service specification; see
services(5). When a service request is received the
following protocol is initiated:
-a
option is given, the addresses for the hostname
are requested, verifying that the name and address correspond. If address
verification fails, the connection is aborted with the message, ``Host
address mismatch.''Rshd
then validates the user using
PAM
, which uses the file
/etc/hosts.equiv and the
.rhosts file found in the user's home directory.
Due to the way the protocol was designed, it is not possible to exchange
information other than those specified here for authentication. Thus PAM
authentication modules such as pam_unix should not be used with this
service.
Also note that the design of the
.rhosts system is COMPLETELY INSECURE except on
a carefully firewalled private network. Under all other circumstances,
rshd
should be disabled entirely.
rshd
.Transport-level keepalive messages are enabled unless the
-n
option is present. The use of keepalive messages
allows sessions to be timed out if the client crashes or becomes
unreachable.
Except for the last one listed below, all diagnostic messages are returned on the initial socket, after which any network connections are closed. An error is indicated by a leading byte with a value of 1 (0 is returned in step 9 above upon successful completion of all the steps prior to the execution of the login shell).
The authentication procedure used here assumes the integrity of each client machine and the connecting medium. This is insecure, but is useful in an ``open'' environment.
A facility to allow all data exchanges to be encrypted should be present.
A more extensible protocol (such as Telnet) should be used.
April 20, 1991 | Linux NetKit (0.17) |