Skip to main content
Stack Overflow Jobs powered by Indeed: A job site that puts thousands of tech jobs at your fingertips (U.S. only). Search jobs

SSH (Secure shell) is a protocol for secure communication between computers to execute remote commands, transfer data and tunnel TCP connections.

SSH (Secure SHell) is a protocol to establish a secure channel (encrypted, authenticated and integrity-protected) and execute commands on a remote computer or transfer data between computers. It is the de facto standard protocol for remote command execution and secure file transfer in the unix world.

SSH allows running remote shell commands, transfering files with SCP (file copy) or SFTP (FTP-like protocol, not to be confused with FTP over SSH or FTP over SSL), and tunnelling TCP connections by forwarding ports. Notable applications that operate over SSH include rsync and similar data transfer tools, and SSHFS to mount remote file trees.

SSH is built on a secure channel protocol that is somewhat similar but not identical to SSL. SSH usually uses passwords or public keys to authenticate users (other mechanisms exist) and public keys to authenticate servers. Unlike SSL, SSH has no common public-key infrastructure to certify server or user keys.

The most common implementations of SSH are OpenSSH (servers and desktops), Dropbear (embedded devices) and PuTTY (Windows client).

For functional questions on configuring SSH, see the ssh tag on Unix & Linux, Server Fault (for IT professionals managing multiple machines), Ask Different (Mac OS X and iOS), Ask Ubuntu or Super User (home PC under any operating system)).