remshd(1M) remshd(1M)
NAME
remshd - remote shell server
SYNOPSIS
/etc/remshd
DESCRIPTION
remshd is the server for the rcmd(3N) routine and,
consequently, for remsh(1N). The server provides remote
execution facilities with authentication based on privileged
port numbers.
remshd listens for service requests at the port indicated in
the cmd service specification; see services(4N). When
remshd receives a service request, it initiates the
following protocol:
1. remshd checks the client's source port. If the port is
not in the range 0-1023, it aborts the connection.
2. remshd reads characters from the socket up to a null
(``\0'') byte. It interprets the resultant string as an
ASCII number, base 10.
3. If remshd receives a port number (in step 1) which is
non-zero, it interprets it as the port number of a
secondary stream to use for the stderr. It then creates
a second connection to the specified port on the client's
machine. The source port of this second connection is
also in the range 0-1023.
4. remshd checks the client's source address. If the
address is associated with a host which has no
corresponding entry in the host name data base (see
hosts(4N)), remshd aborts the connection.
5. remshd retrieves a null-terminated user name up to 16
characters long on the initial socket. It interprets this
user name as a user identity to use on the server's
machine.
6. remshd retrieves a null-terminated user name up to 16
characters long on the initial socket. It interprets this
user name as the user identity on the client's machine.
7. remshd retrieves a null-terminated command on the initial
socket to passed to a shell. The length of the command
is limited by the size of the system's argument list.
8. remshd validates the user according to the following
steps. It looks up the remote user name in the password
file and performs a chdir to the user's home directory.
Page 1 (last mod. 1/15/87)
remshd(1M) remshd(1M)
If either the lookup or chdir fail, it terminates the
connection. If the user is not the super-user, (user id
0), it consults the file /etc/hosts.equiv for a list of
``equivalent'' hosts. If the client's host name is in
this file, the authentication is considered successful.
If the lookup fails, or the user is the super-user, it
checks the file .rhosts in the home directory of the
remote user for the machine name and identity of the user
on the client's machine. If this lookup fails, it
terminates the connection.
9. remshd returns a null byte on the connection associated
with the stderr and passes the command line to the normal
login shell of the user. The shell inherits the network
connections established by remshd.
DIAGNOSTICS
remshd returns all diagnostic messages on the connection
associated with the stderr, after which it closes any
network connections. It indicates an error by a leading
byte with a value of 1 (it returns 0 in step 9 above if it
has successfully completed all the steps up to command
execution).
locuser too long
The name of the user on the client's machine is longer than
16 characters.
remuser too long
The name of the user on the remote machine is longer than 16
characters.
command too long
The command line passed exceeds the size of the argument
list (as configured into the system).
Hostname for your address unknown.
There is no entry in the host name database for the client's
machine.
Login incorrect.
There is no password file entry for the user name.
No remote directory.
The chdir command to the home directory failed.
Permission denied.
The authentication procedure described above failed.
Can't make pipe.
The pipe needed for the stderr, wasn't created.
Page 2 (last mod. 1/15/87)
remshd(1M) remshd(1M)
Try again.
A fork by the server failed.
/bin/sh: ...
Could not start the user's login shell.
FILES
/etc/remshd
SEE ALSO
remsh(1N), rcmd(3N).
BUGS
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.
There should be a facility allowing all data exchanges to be
encrypted.
Page 3 (last mod. 1/15/87)