SSH
Secure Shell (SSH) is a network protocol for remote access.
Contents
Design
SSH uses public key cryptography to secure a connection between the client and server processes. The user then authenticates, establishing their identity on the server, within the encrypted connection.
Optionally the public-private keypair can be generated ahead of time. The public key is placed on the server, and subsequently the private key is used to simultaneously secure the connection and authenticate the user.
The client also maintains a list of known servers and their public keys. If the connection to a (not compromised) server were to be spoofed, the public keys would differ and the client would know to abort.
Implementations
Servers