SSH (Secure Shell) is a network protocol that provides a secure, encrypted way to access and manage a computer or server over an unsecured network like the internet.
Remote Access: The primary use of SSH is to log into a remote computer's "shell" (the command-line interface) to execute commands as if you were sitting directly in front of it.
Secure File Transfer: SSH supports specialized protocols like SFTP (SSH File Transfer Protocol) and SCP (Secure Copy Protocol) for moving files between systems securely.
Tunneling (Port Forwarding): It can create an encrypted "tunnel" to protect other types of data traffic, such as securing a database connection or bypassing restrictive firewalls.
System Administration: It is the standard tool for managing web servers, routers, and other network infrastructure.
SSH operates on a client-server model.
The Handshake: When an SSH client connects to an SSH server (typically on Port 22), they negotiate encryption standards to establish a secure channel.
Authentication: The user must prove their identity. While you can use a traditional username and password, the most secure method is using SSH Keys (cryptographic public-private key pairs).
Encryption: Once authenticated, all data sent between the two devices is scrambled using strong encryption (such as AES), making it unreadable to anyone intercepting the traffic.
SSH Client: The software on your local device (e.g., OpenSSH for Linux/Mac/Windows or PuTTY for Windows) used to start the connection.
SSH Server (sshd): The background program (daemon) running on the remote computer that listens for incoming connection requests.
Public/Private Keys: A pair of files where the "Public Key" is shared with the server to identify you, and the "Private Key" remains secret on your personal device to unlock access.