Secure Shell is a network protocol for accessing a remote computer securely. The computer doing the connecting is known as the client, and the computer being connected to is called the host. From the client, you can execute commands on the host computer remotely, and exchange files between the two computers. All communication between the two computers is encrypted so commands and files passed between the two computers are gibberish to anyone who intercepts them. The two computers could be in the same room or in different countries, SSH doesn’t care.
Connecting via SSH
SSH encryption is achieved by creating a matched pair of cryptographic keys, one for each computer. These two keys have a complex mathematical relationship with each other. Data is encrypted with one key on one computer and decrypted with the other key on the other computer and vice versa. Data encrypted with a key is useless without the other key. These two keys are used for the time the two computers are connected and when they disconnect, the two keys are discarded forever. If another connection is made later, two new keys are generated.
The two computers are connected, but the client can’t perform commands and exchange files on the host computer until it proves its identity and is allowed access. This process is called authentication. Some SSH hosts require the client to send a correct username and password to the host computer. A more secure authentication method is to use another key pair similar to the initial connection process. In this case both keys are created on the client computer. One key is called the private key and stays on the client computer. The other key is called the public key and is provided to any hosts that you want to connect with via SSH. An administrator adds the public key to the host which tells the host to allow access to the computer which has the matching private key.
The whole process takes a few seconds. At the end of it, the client computer opens a user interface or shell which can be used to execute commands on the host computer. These commands could include creating files and folders, installing programs, changing configurations or even rebooting the remote computer.
To make SSH connections the client computer must operate an SSH client program and the host computer must operate an SSH hosting program. On Linux based computers we use OpenSSH for both hosting and connecting and on Windows based computers we use PuTTY.
For Phoenix Web, the most common use of SSH is to operate servers hosting websites we build. If you commission our services and operate your website on your own hosting, we are likely to request SSH access from you at some point.
You can read more about SSH at: