SSH uses public-key cryptography to authenticate the remote computer and allow it to authenticate the user, if necessary.
There are several ways to use SSH; one is to use automatically generated public-private key pairs to simply encrypt a network connection, and then use password authentication to log on.
SSH is typically used to log in to a remote machine and execute commands, but it also supports tunneling, forwarding TCP ports and X11 connections; it can transfer files using the associated SSH file transfer (SFTP) or secure copy (SCP) protocols.
SSH uses the client-server model. The standard TCP port 22 has been assigned for contacting SSH servers.
An SSH client program is typically used for establishing connections to an SSH daemon accepting remote connections.
Both are commonly present on most modern operating systems, including Mac OS X, most distributions of Linux, OpenBSD, FreeBSD, NetBSD, Solaris and OpenVMS.
Notably, Windows is one of the few modern desktop/server OSs that does not include SSH by default.
Proprietary, freeware and open source (e.g. PuTTY, and the version of OpenSSH which is part of Cygwin) versions of various levels of complexity and completeness exist.