SSH: indispensable for power users

SSH is a network protocol that is used to communicate securely with a server. The most common application of this protocol is to remotely connect to Linux and Unix servers via a shell. Concretely speaking, this means that you can execute commands on another computer, e.g. one of Combell’s servers, from your own computer.

Although our hosting packages are essentially running on a shared hosting environment, we consider this environment a PaaS (Platform As A Service). Our objective is to improve the environment with extra features the modern developer needs. And SSH access to Linux hosting is precisely one of those indispensable features.

The web industry changes continually and so do the developers’ expectations. Ten years ago, FTP was sufficient as the only way to access hosting packages, but today there are numerous new technologies that are mainly based on SSH—SSH as part of software deployment, for instance. The availability of SFTP, SCP and rsync allows developers to deploy their code to our hosting environment in a faster and more efficient manner.

Developers also often use version control tools like Git and Subversion. Git and SVN binaries are all available in the SSH shell. This way, not only can you push data (via SFTP, SCP and rsync), but you can also pull data via Git or Subversion.

Deployment is important, but it is not the only thing customers want to do via SSH. Viewing log files, managing the file system and of course assigning access rights are essential features too. Every SSH jail has a fixed set of commands that allows you to manage your package optimally: filtering via grep, downloading via curl or wget, monitoring disk usage via du, managing archives via tar, etc. In total, we have made available 156 of the most common binaries.

In order to guarantee the safety of our systems and of our customers’ data, we decided to develop a specific architecture to allow for access to our systems via SSH. As opposed to traditional hosting setups, you do not establish a direct connection to the web server. The web server runs separately and has been specifically configured to host your sites in the most efficient way possible.

However, a separate pool of dedicated SSH servers process the SSH connections. There is an SSH server for every web server and there is a separate SSH jail for each hosting package. This jail makes sure that the customer only has access to his files and cannot go beyond the confines of his package. The files of the package are on a separate storage node. This is how it becomes possible to make these files available on the web server as well as on the SSH server.