Nextpertise a journal of interesting technical ideas . . .

Eternal Terminal

by Brent Stewart on Monday, Jan 25, 2021

Eternal Terminal acts like ssh - you start a console session on a remote device by typing et username@host and it connects. ET adds to ssh by allowing reconnects.

A lot of ssh sessions are short affairs - login, put in a few commands, get some output, logout. If the session is interrupted it’s not a big deal. Occassionally, however, it’s important to stay connected for a period of time.

In a past life, I used to have to run reports against a database at the data center. The script I used took a while and any interruption meant starting over. Eternal Terminal wasn’t around at that time, so I solved the problem by deploying a jump server and I could connect to it using x2go and start the session from there. I could disconnect and reattach later

That solution required a dedicated VM, which requires some money. It wasn’t a bad solution, but it didn’t really address the underlying problem.

With et (Eternal Terminal), a disconnected session is maintained. The server continues processing and the client can continue to accept keyboard input. When the connection is re-established, the environment is still in place. Frankly, for day-to-day use you won’t see much difference between et and a normal SSH session. If you have workflows that require long-duration connectivity, this could be a great tool.

Et uses SSH for the initial connection and to exchange keys. Authentication is handled by SSH. Once the session is established, et sets up a console.

Installing and Using

To use et, both the client and server must have it installed. Eternal Terminal can be installed on Ubuntu from the archives:

sudo apt install et

Usage is just like ssh, except that if a username is not specified it is assumed to be the same as the client.

et brent@10.1.1.100

Eternal Terminal survives roaming, rebooting, and disconnection. A simple way to try it out is to disconnect your network card and reconnect.



References:
  https://eternalterminal.dev/
  https://github.com/MisterTea/EternalTerminal

Recent articles related to these tags: ssh
Share this article:    Tweet