Secure Shell, or SSH, is a cryptographic (encrypted) network protocol to allow remote login and other network services to operate securely over an unsecured network.

SSH provides a secure channel over an unsecured network in a client-server architecture, connecting an SSH client application with an SSH server. It’s commonly used for  remote command-line login and remote command execution, but any network service can be secured with SSH. The protocol specification distinguishes between two major versions, referred to as SSH-1 and SSH-2. The most visible application of the protocol is for access to shell accounts on Unix-like operating systems.

SSH is important in cloud computing to solve connectivity problems, avoiding the security issues of exposing a cloud-based virtual machine directly on the Internet. An SSH tunnel can provide a secure path over the Internet, through a firewall to a virtual machine.

The Secure Shell protocols are used in several file transfer mechanisms:

  • Secure copy (SCP), which evolved from RCP protocol over SSH
  • rsync, intended to be more efficient than SCP
  • SSH File Transfer Protocol (SFTP), a secure alternative to FTP
  • Files transferred over shell protocol (a.k.a. FISH)