Skip to content
Docker image running Alpine Linux, OpenSSH, and Eternal Terminal.
Shell Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis.yml
Dockerfile
LICENSE
README.md
demyx-entrypoint.sh
travis.sh

README.md

eternal-terminal

Build Status Docker Pulls Architecture Alpine OpenSSH eternal-erminal Buy Me A Coffee

Eternal Terminal (ET) is a remote shell that automatically reconnects without interrupting the session. Learn how to install and use it here https://eternalterminal.dev.

Inspirations

ET was heavily inspired by several other projects:

  • ssh: Ssh is a great remote terminal program, and in fact 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. With ssh, one must kill the ssh session and reconnect after a network outage.
  • autossh: Autossh is a utility that automatically restarts an ssh session when it detects a reconnect. It's a more advanced version of doing "while true; ssh myhost.com". Although autossh will automatically reconnect, it will start a new session each time. This means, if we use tmux with control mode, we must wait for the ssh connection to die and then re-attach. ET saves valuable time by maintaining your tmux session even when the TCP connection dies and resuming quickly.
  • mosh: Mosh is a popular alternative to ET. While mosh provides the same core funtionality as ET, it does not support native scrolling nor tmux control mode (tmux -CC).
TITLE DESCRIPTION
SSH PORT 22
ET PORT 2022

Updates & Support

Code Size Repository Size Watches Stars Forks

  • Auto built weekly on Sundays (America/Los_Angeles)
  • Rolling release updates
  • For support: #demyx

Usage

REMOTE MACHINE: Run eternal terminal server first

docker run -dit \
--name demyx_et \
-v demyx_ssh:/home/demyx/.ssh \
-p 2222:22 \
-p 2022:2022 \
demyx/eternal-terminal

REMOTE MACHINE: Copy authorized_keys to volume

docker cp /home/"$USER"/.ssh/authorized_keys demyx_et:/home/demyx/.ssh

REMOTE MACHINE: Verify authorized_keys is in the volume

docker exec -t demyx_et ls -al /home/demyx/.ssh

REMOTE MACHINE: Restart container so permissions are set

docker restart demyx_et

LOCAL MACHINE: Make ssh alias (~/.ssh/config)

Host example
     HostName example.com
     User demyx
     Port 2222

LOCAL MACHINE: Run et command using alias (assuming et is installed on local machine)

et example
You can’t perform that action at this time.