SSH is designed to replace older, less secure terminal applications used
to log into remote hosts, such as telnet or
rsh. A related program called
scp replaces older programs designed to copy
files between hosts, such as rcp. Because these
older applications do not encrypt passwords transmitted between the client
and the server, avoid them whenever possible. Using secure methods to
remotely log into remote systems decreases the risks for both the client
system and the remote host.
18.1. Features of SSH
SSH (or Secure SHell) is a
protocol which facilitates secure communications between two systems
using a client/server architecture.
The SSH protocol provides the following safeguards:
After an initial connection, the client can verify that it is
connecting to the same server it connected to previously.
The client transmits its authentication information to the
server using strong, 128 bit encryption.
All data sent and received during a session is transferred using
128 bit encryption, making intercepted transmissions extremely
difficult to decrypt and read.
The client can forward X11
[1] applications from the server. This technique, called
X11 forwarding, provides a secure means to
use graphical applications over a network.
Because the SSH protocol encrypts everything it sends and receives, it
can be used to secure otherwise insecure protocols. Using a technique
called port forwarding, an SSH server can become
a conduit to secure otherwise insecure protocols, like POP, increasing
overall system and data security.
Red Hat Linux includes the general OpenSSH package
(openssh), the OpenSSH server
(openssh-server) and client
(openssh-clients) packages. Please see the chapter
titled OpenSSH in the
Red Hat Linux Customization Guide for instructions on installing and
deploying OpenSSH. Also note that the OpenSSH packages require the
OpenSSL package (openssl). OpenSSL installs several
important cryptographic libraries which enable OpenSSH to provide
encrypted communications.
A large number of client and server programs can use the SSH
protocol. SSH client applications are available for almost every major
operating system in use today.
18.1.1. Why Use SSH?
Nefarious computer users have a variety of tools at their disposal
which enable them to disrupt, intercept, and re-route network traffic
in an effort to gain access to a system. In general terms, these
threats can be categorized as:
Interception of communication between two
systems — In this scenario, the attacker can be
somewhere on the network between the communicating entities,
copying any information passed between them. The attacker may
intercept and keep the information or alter the information and
send it on to the intended recipient.
This attack can be mounted through the use of a packet sniffer
— a common network utility.
Impersonation of a particular host
— Using this strategy, an attacker's system is configured to
pose as the intended recipient of a transmission. If this strategy
works, the user's system will remain unaware it is communicating
with the wrong host.
This attack can be mounted through techniques known as DNS
poisoning
[2]
or IP spoofing
[3].
Both techniques intercept potentially sensitive information, and if the
interception is for hostile reasons, the results can be disastrous.
If SSH is used for remote shell login and file copying, these security
threats can be greatly diminished. This is because the SSH client and
server use digital signatures to verify their identity. Additionally,
all communication between the client and server systems is
encrypted. Attempts to spoof the identity of either side of a
communication will not work, since each packet is encrypted using a
key known only by the local and remote systems.