Eternal Terminal: a remote shell that reconnects automatically

ET

Eternal Terminal (ET) it is a remote shell that automatically reconnects without breaking the session.

Unlike a normal SSH session, the session made with ET will continue regardless of whether you have an IP change or a network outage.

That means that even if the IP address of your remote host is changed, Eternal Terminal will keep you connected to the remote system.

Another notable feature of ET is that we can run tmux / screen within an ET session.

ET supports tmux control mode which allows you to have operating system scroll bars, tabs and windows.

This is where ET sets itself apart from other similar apps like Mosh (A popular alternative to SSH).

Although Mosh offers the same functionality as ET, it does not support hover mode or tmux control mode. Simply put, ET is a remote terminal for busy and impatient people.

It is important to mention that ET is not a terminal emulator, it is just a remote shell.

ET is strongly inspired by several projects of which can be mentioned:

  • ssh: it's a great remote terminal program, and actually ET uses ssh to initialize the connection. The big difference between ET and ssh is that an ET session can survive network outages and IP roaming.
  • autossh: is a utility that automatically restarts an ssh session when it detects a reconnection. It is a more advanced version of doing «while true; ssh myhost.com ». ET saves valuable time by maintaining your tmux session even when the TCP connection dies and quickly resumes.
  • mosh: Mosh is a popular alternative to ET. While mosh provides the same basic functionality as ET, it does not support native scrolling or tmux control mode (tmux -CC).

How to install ET on Linux?

To Those who are interested in being able to install ET in their systems, should follow the steps that we share below.

It is important to mention that ET must be installed on the server and the client system. By default, ET uses port 2022, so if you are behind a firewall or router, you must open this port.

For those who are Ubuntu users and its derivatives, we can add the following repository to the system with:

sudo add-apt-repository ppa:jgmath2000/et

It is important to mention that this repository is only valid up to Ubuntu 18.04 LTS, so for Ubuntu 18.10 users they must download and install the deb package.

Once the repository has been added, we proceed to install the application with:

sudo apt-get update
sudo apt-get install et

If you want to install from the deb package, you must download and install it with the following commands.

Users of 64-bit systems should download this package with:

wget https://launchpad.net/~jgmath2000/+archive/ubuntu/et/+build/15589986/+files/et_5.1.8-xenial1_amd64.deb

32-bit system users download this:

wget https://launchpad.net/~jgmath2000/+archive/ubuntu/et/+build/15589988/+files/et_5.1.8-xenial1_i386.deb

And for those who are ARM users, the package to download is:

wget https://launchpad.net/~jgmath2000/+archive/ubuntu/et/+build/15589987/+files/et_5.1.8-xenial1_armhf.deb

Once the download is done, they simply have to install the downloaded package with:

sudo dpkg -i et*.deb

And they solve dependencies with:

sudo apt -f install

ET_Communicator

Now in the case of those who are Debian users, they must open a terminal and execute the following command in it:

echo "deb https://mistertea.github.io/debian-et/debian-source/ stretch main" | sudo tee -a /etc/apt/sources.list

curl -sS https://mistertea.github.io/debian-et/et.gpg | sudo apt-key add -

Update and install the application with:

sudo apt update
sudo apt install et

For the rest of the Linux distributions, you must download and compile the source code of the application with the following commands.

So they must have the following dependencies already installed on your system:

  • libboost-dev
  • libsodium-dev
  • libncurses5-dev
  • libprotobuf-dev
  • protobuf-compiler
  • cmake
  • libgoogle-glog-dev
  • libgflags-dev
  • unzip
  • wget

First we download the source code with:

wget https://github.com/MisterTea/EternalTerminal/archive/master.zip

Done this now we are going to unzip the downloaded file with:

unzip master.zip

We enter the generated directory with:

cd master

And we proceed to compile the code with the following commands:

mkdir build
cd build
cmake ../
make

Finally we must install the application with this command:

sudo make install


Add as preferred source in Google