Chapter 10. SSH Protocol

SSH™ allows users to log into host systems remotely. Unlike rlogin or telnet SSH encrypts the login session, making it impossible for intruders to collect clear-text passwords.

SSH is designed to replace common methods for remotely logging into another system through a command shell. A related program called scp replaces older programs designed to copy files between hosts such as ftp or rcp. Because these older applications do not encrypt passwords between the client and the server, you avoid them whenever possible. Using secure methods to remotely log in to other systems will decrease the security risks for both your system and the remote system.

Introduction

SSH (or Secure SHell) is a protocol for creating a secure connection between two systems. In the SSH protocol, the client machine initiates a connection with a server machine.

The following safeguards are provided by SSH:

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 insecure protocols, like POP, increasing overall system and data security.

Red Hat Linux 7.3 includes the general OpenSSH package (openssh), the OpenSSH server (openssh-server) and client (openssh-clients) packages. Please see the chapter titled OpenSSH in the Official 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 that help OpenSSH provide encrypted communications.

A large number of client and server programs can use the SSH protocol. Several different SSH client versions are available for almost every major operating system in use today. Even if the users connecting to your system are not running Red Hat Linux, they can still find and use an SSH client native for their operating system.

Why Use SSH?

Threats to network traffic include packet sniffing, DNS and IP spoofing [2] and the proliferation of fake routing information. In general terms, these threats can be categorized as follows:

  • Interception of communication between two systems — In this scenario, a third party exists somewhere on the network between communicating entities and makes a copy of the information being passed between them. The intercepting party may intercept and keep the information, or it may alter the information and send it on to the intended recipient.

  • Impersonation of a particular host — Using this strategy, an intercepting system pretends to be the intended recipient of a message. If the strategy works, the client remains unaware of the deception and continues to communicate with the interceptor as if its traffic had successfully reached its destination.

Both techniques cause information to be intercepted, possibly for hostile reasons. The results can be disastrous, whether that goal is achieved by listening for all packets on a LAN or a hacked DNS server pointing to a maliciously duplicated host.

If SSH is used for remote shell logins and file copying, these security threats can be greatly diminished. A server's digital signature provides verification for its identity. The entire communication between client and server systems cannot be used if intercepted, because each of the packets 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.

Notes

[1]

X11 refers to the X11R6 windowing display system, traditionally referred to as X. Red Hat Linux includes XFree86, a widely used, open source X Window System, which is based on X11R6.

[2]

Spoofing means an intruder sends network packets that falsely appear to be from a trusted host on the network.