Secure Terminal Sharing
Upterm is an open-source solution for sharing terminal sessions instantly with the public internet over secure tunnels.
brew tap jingweno/upterm brew install upterm
upterm can be easily installed as an executable. Download the latest compiled binaries and put it in your executable path.
git clone firstname.lastname@example.org:jingweno/upterm.git cd upterm GO111MODULE=on go install ./cmd/upterm/...
# Host a terminal session by running $SHELL # The client's input/output is attached to the host's. $ upterm host # Display the ssh connection string $ upterm session current === BO6NOSSTP9LL08DOQ0RG Command: /bin/bash Force Command: n/a Host: uptermd.upterm.dev:22 SSH Session: ssh bo6nosstp9ll08doq0rg:MTAuMC4xNzAuMTY0OjIy@uptermd.upterm.dev # Open a new terminal and connect to the session $ ssh bo6nosstp9ll08doq0rg:MTAuMC4xNzAuMTY0OjIy@uptermd.upterm.dev # Host a session with a custom command. # The client's input/output is attached to the host's. $ upterm host -- docker run --rm -ti ubuntu bash # Host a session by running 'tmux new -t pair-programming'. # The host runs 'tmux attach -t pair-programming' after the client joins the session. # The client's input/output is attached to this command's. $ upterm host --force-command 'tmux attach -t pair-programming' -- tmux new -t pair-programming`,
More advanced usage is here.
You run the
upterm program and specify the command for your terminal session.
Upterm starts an SSH server (a.k.a.
sshd) in the host machine and sets up a reverse SSH tunnel to a Upterm server (a.k.a.
Clients connect to your terminal session over the public internet via
A community Upterm server is running at
upterm points to this server by default.