termuna

Learn

How do you reach a server behind a VPN without a jump host?

SSH's model needs a path into the machine, which is why bastions, jump chains, and VPN clients on every device exist. There is another way to hold the problem: let the machine dial out. This is how Termuna's device channel does it, and what it honestly does and does not replace.

Why does SSH need jump hosts at all?

SSH is an inbound protocol: your client opens a connection to the server's port 22, so something on the path must be reachable from where you are. A box behind NAT, a corporate firewall, or a private VPN subnet has no address you can dial from a phone on cellular. The classic answers all add reachable middleboxes: a bastion with a public address, a jump chain, or a VPN client on every device you might ever use. Each one is more surface to secure and one more thing that is not installed on the phone in your hand.

What happens when the connection points the other way?

Invert the direction and the reachability problem disappears. A machine running termuna-daemon opens one outbound, encrypted WebSocket to the relay and keeps it. Outbound connections pass NAT, firewalls, and VPN boundaries the same way your browser does, so the server needs no open port, no public address, and no bastion in front of it. When you open the machine from your laptop or phone, your command travels to the relay, down that already-open channel, and the shell it starts runs on the server itself.

Termuna calls this the device channel: the machine holds a connection of its own, whether or not any session is running on it. That is what makes it appear in every client's device list as reachable, and what makes "open the first session on a freshly booted server, from the couch" possible at all.

Does the relay become the thing you have to trust?

No, and that is the whole design. Every frame is sealed end to end before it touches the network (how that works), and commanding a machine costs your account's vault passphrase, not a mere token: the daemon publishes its key wrapped to your account's vault public key, so the relay stores a blob it cannot read and cannot use. The relay routes ciphertext between you and your machine; assume it is fully compromised, and the attacker still cannot read a session or command a box.

What does this not replace?

SSH. Honestly and specifically: sshd reaches any machine that runs it, including boxes you cannot install software on, and it is the universal substrate of infrastructure. The device channel reaches machines you chose to join to your account. The two compose rather than compete: a Termuna session on your server is a real shell, and from it you SSH onward to anything the server can see, which is exactly what a jump host used to be for, minus the jump host.

What does it look like day to day?

  • The server appears beside your laptops in the sessions drawer and the phone's list, named after its host and platform.
  • Create, rename, kill, and wake sessions on it from any signed-in client; liveness is the machine answering, not a guess.
  • Revoking the machine is one token deletion; its channel closes and its sessions keep running locally.
  • After a reboot the service returns on its own, and dormant sessions wake into fresh shells with their working directories remembered.

Set it up: Termuna on a server

Drive it from your phone