SSH (Secure SHell) is a network protocol for secure communication to Unix and Unix-like operating systems. SSH allows you to remotely manage Linux/Unix servers via command line. When you run the ssh command or invoke any SSH client, you will need to provide username and password of a user on the remote Linux server, to then be presented with the command line as if you were working directly and locally on that server.
SSH Protocol Versions
There are two protocol versions of SSH:
- SSH version 1
- SSH version 2
As a software product, SSH usually consists of three components.
SSH server (sshd)
ssh server is a binary called sshd that runs SSH service on default SSH port 22 and accepts secure connections on the server side.
ssh client in its simplest form is the ssh command – you type it and specify remote SSH server hostname or IP address to start a secure remote access session. If username and password (or SSH key) are accepted by the SSH server, you'll be given a command line prompt.
These days SSH packages come with quite a number of super useful little tools:
- scp/sftp for copying files
- ssh-keygen for SSH key management
- ssh-agent for managing SSH keys in memory and forwarding them to remote sessions
ssh command is the client side of id, while sshd (openssh server) is the server component.