Skip to content
Subnomic
← Back to blog
Fleet May 28, 2026 · Updated Sep 11, 2026 · 3 min read

SSH without a single open port

How an outbound-only agent lets you open a terminal on every host while port 22 stays closed to the internet.

Every server exposed to the internet is a target. The moment you open port 22 to accept SSH connections, you’ve published an address the entire world can probe — and it does, relentlessly. Bots scan the IPv4 space continuously, hammering exposed SSH daemons with credential-stuffing attempts around the clock.

The standard mitigations — IP allowlists, fail2ban, bastion hosts, VPNs — all reduce the blast radius, but they share one assumption: that the host must listen for inbound connections. Subnomic takes a different stance. What if the host never listened at all?

The inbound problem

A listening port is a standing invitation. Even with key-only authentication, an exposed SSH service leaks information, spends resources fielding junk traffic, and is a single CVE away from compromise. Bastion hosts concentrate the risk into one box, but that box still listens — and once an attacker is through it, the whole fleet is reachable.

If nothing listens, there is nothing to attack from the outside.

Outbound-only by design

The Subnomic agent runs on each host and opens one long-lived outbound connection to Subnomic, encrypted with TLS and authenticated with the agent’s own token. No inbound firewall rule is required. Port 22 — and every other management port — can stay closed to the internet. The connection starts from inside your network, the same way a laptop reaches a website.

When someone opens a terminal, the request travels back down the connection the agent already holds. The host never accepts a fresh inbound connection. The agent also refuses to dial anything outside its allowlist, which defaults to loopback and private addresses.

# Traditional: the host listens, the world knocks
client ──▶ :22 (open to the internet) ──▶ sshd

# Subnomic: the host dials out, nothing listens
agent ──▶ Subnomic (outbound TLS) ◀── you, in a browser or the CLI

What this buys you

Is it still SSH?

Not on the wire — and that is the point. There is no sshd for anyone to reach and no private key to copy onto another laptop. What you get is a full interactive terminal on the host, a real PTY so htop and vim behave, opened from the browser or from your own terminal:

$ subnomic ssh db-primary

On Linux you act as your own operator user rather than a shared account, each command line passes the workspace’s guardrails, and the session is recorded for replay.

Closing the last port

The network perimeter stopped being a useful boundary a long time ago. Closing port 22 entirely, and putting a signed-in person and a recording behind every terminal, removes a whole category of attacks before they can begin.

Want it on your own servers? See Fleet — servers start on Pro.

Enjoyed this? Read more on the Subnomic blog.