SSH is a set of standards and an associated network protocol that allows establishing a secure channel between a local and a remote computer. It uses public-key cryptography to authenticate the remote computer and (optionally) to allow the remote computer to authenticate the user. SSH provides confidentiality and integrity of data exchanged between the two computers using encryption and message authentication codes (MACs). SSH is typically used to log into a remote machine and execute commands, but it also supports tunneling, forwarding arbitrary TCP ports; it can transfer files using the associated SFTP or SCP protocols. It’s described in the following RFCs :
- The Secure Shell (SSH) Transport Layer Protocol (RFC 4253)
- The Secure Shell (SSH) Authentication Protocol (RFC 4252)
- The Secure Shell (SSH) Protocol Architecture (RFC 4251)
In other word, what it basically does is provide a secure telnet, a secure FTP and a secure tunnelling feature.
Secure means that the user is authenticated and that the data exchanges are encrypted.