One of the nicest things about using a computing device running a Linux distribution or operating system is that the remote access tools you’ll need are installed by default or are just a quick installation away. In an industrial setting where IoT devices proliferate, those devices are most likely powered by a (custom) Linux distribution, so managing them shouldn’t be pretty straightforward. While there are other remote access tools, I’m mainly referring to OpenBSD’s SSH (Secure SHell), which is also now available on Windows 10, and on macOS, and a few other remote access applications.
So regardless of the operating system you’re using, the process of establishing a remote connection to a Linux system via SSH should be via the same commands or via any number of graphical interfaces. But SSH is just one mode of accessing a Linux system remotely, so let’s explore it and a few others.
Connecting to a Linux server remotely from a Linux client
Note that since SSH is a client-server application, the remote server must have the SSH server application installed and configured to accept connections from a client or the connection attempt will fail.
So assuming that the IP address of the (remote) server that you wish to connect to is 192.168.0.1 and the username you wish to connect to as is finid, open a terminal application and type ssh email@example.com. Depending on the form of authentication in place, one of the following will happen:
- You’ll be logged in automatically if the mode of authentication in place is only secure keys.
- If secure keys and password authentication are in place, authentication via secure keys will take place first, then you’ll be prompted for your password.
- You’ll be prompted for your password if password authentication is the sole mode of authentication in place.
If authentication is successful, you’ll then be logged into the server. From then any command you type will be executed on the remote server. And as stated previously, this form of remote access will work if the local and remote endpoints are running an SSH application.
Remote SSH access via a graphical interface
Not comfortable working at the command line? No problem! There are any number of graphical applications that you can use from your local Linux, Windows or macOS machine to access a remote server via SSH. The most popular on Linux is FileZilla. On Windows, Putty comes to mind. However, those applications are best for transferring files between your local machine and the remote server. They pale in comparison to the command line when you really want to manage a remote server. A slightly more complicated method involves forwarding X over SSH to run graphical applications, so I’ll leave that for a future article.
Remote access via a graphical interface
Working on another computer remotely via SSH is fine, but if you need something that works on all the devices available today – desktop, server, mobile, etc, you’ll need something like a remote support software. Such applications are typically commercial and not free software, but they get the job done for when access to source code is not a primary concern. IT departments often use this kind of software to help people without having to make a physical support call. These apps provide the same level of security as SSH, but with the added convenience of a fully graphical interface.
Commercial remote support applications are not the only graphical remote applications available. xrdp, a free software implementation of Microsoft’s RDP (Remote Desktop Protocol) works on Linux systems and can entertain connections from several RDP clients, like FreeRDP, rdesktop, NeutrinoRDP and Microsoft Remote Desktop Client (for Windows, macOS, iOS and Android).
Not to be left out, VNC (Virtual Network Computing) makes it possible to access a remote desktop via a graphical interface over RFB, the Remote Frame Buffer protocol. I wrote a tutorial for Digital Ocean three years ago that showed how to install and configure VNC on Ubuntu 16.04. It has since been updated by Brian Hogan for Ubuntu 18.04. You may access his update here. VNC is OS-agnostic, so if you use a distribution or OS other than Ubuntu, you should be able to install and configure it on any other operating system.