jssh vs Tailscale

Tailscale alternative for device fleets: isolation without a mesh

TL;DR Tailscale is excellent at what it is for: connecting a team to shared infrastructure as one network. A fleet is the opposite shape, meaning hundreds of devices that must not see each other, owned by different customers, reached by a few operators. jssh is built for that shape: no mesh, hard per-device isolation, and a bill that counts neither your devices nor your seats.

When to choose Tailscale: Your problem is "my team needs to reach our own servers, VMs and laptops as a private network". For team-to-own-infrastructure access, Tailscale is the right tool and you should use it.

A mesh is the wrong shape for a fleet

Tailscale creates a network where joined machines can reach each other, then you constrain it with ACLs. That is ideal for a team, and exactly backwards for a fleet:

Where we deliberately match them

Tailscale set the bar for connectivity that just works, and we hold ourselves to it:

Where we differ on purpose

jsshTailscale
ModelDevice-isolated relay (no network)Mesh VPN (a network)
Device to deviceImpossible by architectureAllowed unless ACL’d away
Multi-tenant (MSP)Separate organizations, scoped operators, per-organization auditPer-tailnet workarounds
Pricing axisConcurrent sessions. Devices and seats are both uncountedPer user
AgentAbout 4 MB on ARM, static musl with no libc dependency on LinuxGo binary; heavier on tiny targets
ScopeSSH, RDP and VNC to fleet devices (focused)General networking (broad)
AuditPer-session, on every planNetwork logs on higher tiers

Using both

Plenty of teams will: Tailscale so engineers reach the company’s own cloud, jssh so support reaches devices in the field one at a time with an audit trail behind it. They solve different problems and they do not conflict on the host, because the jssh agent creates no interface and adds no route.

Last reviewed .

Migrating from Tailscale?

The agents coexist on the same box, so you can enroll a few sites and run both until the other subscription comes up for renewal.