Before any deployment can happen, we need to establish a secure connection from the workstation to the servers. We’ll need it to run various deployment tasks, upload configuration files, and log in. Lucky for us, all of that can be achieved using a single protocol. The Secure Shell protocol and the suite of tools called OpenSSH are all we’ll ever need for remote communication.One of the features of SSH is encrypting the communication using public-key encryption. By putting the public key on the server, we can create a secure connection using the associated private key. By leveraging SSH keys, we can avoid password-based authentication on the server altogether. And using SSH tunneling, we can reuse this connection for other services as well.