8.3. Trusted-Host Access Control 
A
limited type of per-account
configuration is possible if you use trusted-host authentication
rather than public-key authentication. Specifically, you can permit
SSH access to your account based on the client's remote
username and hostname via the system files
/etc/shosts.equiv and
/etc/hosts.equiv, and personal files
~/.rhosts and 
~/.shosts. A
line like:
+client.example.com jones
permits trusted-host SSH access by the user
jones@client.example.com. Since we've already
covered the details of these four files, we won't repeat the
information in this chapter. [
Section 3.4.2.3, "Trusted-host authentication (Rhosts and RhostsRSA)"]
Per-account configuration with trusted-host authentication is similar
to using the 
from option of
authorized_keys with public keys. Both may
restrict SSH connections from particular hosts. The differences are
shown in this table.
| 
Feature | 
Trusted-Host | 
Public-Key from | 
| 
Authenticate by hostname | 
Yes | 
Yes | 
| 
Authenticate by IP address | 
Yes | 
Yes | 
| 
Authenticate by remote username | 
Yes | 
No | 
| 
Wildcards in hostnames and IP | 
No | 
Yes | 
| 
Passphrase required for logins | 
No | 
Yes | 
| 
Use other public-key features | 
No | 
Yes | 
| 
Security | 
Less | 
More | 
To use trusted-host authentication for access control, all the following
conditions must be true:
- Trusted-host authentication is enabled in the server, both at compile
time and in the serverwide configuration file.
 - Your desired client hosts aren't specifically excluded by
serverwide configuration, e.g., by AllowHosts and
DenyHosts.
 - For SSH1, ssh1 is installed setuid root.
 
Despite its capabilities, trusted-host authentication is more complex
than one might expect. For example, if your carefully crafted
.shosts file denies access to 
sandy@trusted.example.com:
# ~/.shosts
-trusted.example.com sandy
but your 
.rhosts file inadvertently permits
access:
# ~/.rhosts
+trusted.example.com
then sandy will have SSH access to your account. Worse, even if you
don't have a 
~/.rhosts file, the system
files 
/etc/hosts.equiv and
/etc/shosts.equiv can still punch a trusted-host
security hole into your account against your wishes. Unfortunately,
using per-account configuration, there's no way to prevent this
problem. Only compile-time or serverwide configuration can disable
trusted-host authentication.
Because of these issues and other serious, inherent weaknesses, we
recommend against using the weak form of trusted-host authentication,
Rhosts
authentication, as a form of
per-account configuration. (By default it is disabled, and we
approve.) If you require the features of trusted-host authentication,
we recommend the stronger form, called RhostsRSAuthentication (SSH1,
OpenSSH) or hostbased (SSH2), which adds cryptographic verification
of host keys. [
Section 3.4.2.3, "Trusted-host authentication (Rhosts and RhostsRSA)"]
  |   |   | 
| 8.2. Public Key-Based Configuration  |   | 8.4. The User rc File  |