SSH - Secure Shell

SSH is a standard designed to allow logging in and execution of commands on a remote computer in a manner similar to telnet, rlogin, and rsh. Unlike these protocols, it does this through an encrypted network connection thus offering a much higher level of security.

The first version of the standard, SSH-1, was designed in 1995 by Tatu Ylönen. The second version, SSH-2, is being standardized by the IETF SECSH working group. It offers a higher level of security than its predecessor.

In order for a computer to be able to accept SSH connections, it must be running an SSH server, such as sshd, on a publicly accessible port (usually port 22). The client computer must have an SSH client, such ssh, and be known to the server. A client is known to the server either by logging in as a known ssh user, or by the client's public key if it has been registered with the server. This differs significantly from SSL which relies on certificates rather than private/public key-pairs.

Private/public key-pairs in SSH typically use either the DSA or RSA asymmetric key algorithms. Most SSH servers support both.

SSH supports the use of data compression to reduce the amount of data that is transmitted. Both the client and server agree on a compression algorithm. They then compress data before sending and decompress data when it is received. Typically, the zlib compression algorithm is used.

Once an SSH session has been established the user may use the console commands that are native to the remote computer.