jssh vs remote.it
remote.it alternative: unlimited devices, SSO and audit included
When to choose remote.it: remote.it has been shipping for years, with a polished desktop and mobile GUI and a free tier for up to 5 personal devices. If your team wants a graphical client rather than a terminal, or you are managing a handful of devices at home, they are the better fit. jssh gives you a CLI and a web dashboard, and there is no jssh GUI client.
The structural difference: what you pay for
remote.it licenses per device. Their published pricing, read from the archived snapshot again on 28 July 2026:
| Plan | Price | Devices | SSO | Activity logs |
|---|---|---|---|---|
| Personal | Free, non-commercial | 5 | Google only | 7 days |
| Professional | $10/mo per license, billed annually | 5 base + 3 per license | ✗ | 30 days |
| Business | $25/mo per license, billed annually | 5 base + 10 per license | ✓ | 1 year |
| Fleet | $250/mo per license | 5 base + 100 per license | ✓ | 1 year |
Source: remote.it/pricing, retrieved June 2026 (archived). The Professional and Business cards carry the words “when billed annually” and the Fleet card does not; it offers annual payment as an option.
Run the numbers for a real fleet. 500 devices needs 5 Fleet licenses, which is $1,250 a month at list, before anyone opens a session, and that number moves every time you add a site.
jssh: every paid plan enrolls an unlimited fleet, at any size. What the plans meter is how many sessions your technicians hold open at the same time: 25 on Pro, 100 on Business, uncapped on Enterprise. The monthly figures are on the pricing page. Both of these are list prices, so if you are already under contract with remote.it, compare against your invoice rather than against this table.
Price history matters
Per-device pricing is where price shocks come from. On 1 June 2023, remote.it introduced device limits per license on existing paid accounts (5 base, plus 3 per Professional license, plus 10 per Business license), with 30 days’ notice. From their own announcement thread:
“We manage 126 devices (RPI’s) for a customer and should go from 50 dollars/month to 390 dollars/month with 13 licences while I only need 1. (…) This is hard to explain to a customer.”
Logicinmotion, an MSP, 5 July 2023. Source: Pricing Update Effective June 1, 2023 (Remote.It Forum) (archived).
We cannot promise we will never change pricing, and our Terms §9.4 give you at least 30 days’ notice when we do. What we can promise is the shape of it: you will never be charged per enrolled device, because an idle device costs us a fraction of a cent a month. That is a structural property of how the service runs. A price cliff of the kind above cannot be built on our billing axis, because there is no device counter to put a price on.
The agent on your hardware
| jssh | remote.it | |
|---|---|---|
| Footprint | Static Rust binary, about 4 MB on ARM and about 5 MB on x86_64, no runtime dependencies | Daemon + dependencies |
| Hardware reach | Linux builds are static musl with no libc to match. x86_64, aarch64 and ARMv7 Linux, OpenWrt, macOS, Windows, Android (Termux) | Broad |
| Install | One command, auto-detects arch and init system | Guided installers |
For an MSP putting an agent on customers’ hardware, a small binary with no dependencies that
proxies bytes to the local ports you declare (localhost:22 for SSH) and never executes remote
commands pushed from the cloud is what earns a security-committee yes. There is a page written for
that committee at jssh.io/security/.
Access model
Both products do per-service access, which beats subnet-level VPNs, and both keep devices invisible to scans with no open ports and outbound-only connections. The differences:
- Isolation: in jssh, each device gets its own isolated relay endpoint, and there is no
device-to-device path at all. The relay is blind: SSH stays end-to-end encrypted between your
client and the device’s
sshd, so we cannot see session content. - Audit: per-session audit (who, device, when, duration, source IP, which services were opened and which were refused) on every plan including the trial. Rows are kept for as long as the organization exists, with no retention tier and no thirty-day window. We do not record session traffic volume, and the audit log has no bytes field.
- Corporate networks: outbound TLS on 443 and nothing else. When a network blocks UDP in both
directions the session falls back to TLS on 443, where we measured about 33 ms of latency, and
jssh-agent doctorreports what is blocked.
Migrating
The agents coexist on the same box, so there is no cutover day:
- Enroll one device by hand to see the flow, with
curl -fsSL https://get.jssh.io | sh. It prints a code and you approve it in the browser. - For the rest, mint a bulk enrollment token per customer and push the install through your
existing tooling, which can include the remote.it sessions you still have:
curl -fsSL https://get.jssh.io | JSSH_ENROLL_TOKEN=<token> sh. Any paid plan takes an unlimited fleet, so enroll broadly and compare side by side. - Map your remote.it users and roles to your identity provider over OIDC.
- Point operators at
jssh ssh <device>, or at plainssh <device>.jssh.dev, and keep remote.it until renewal. - Let the licenses lapse.
Last reviewed .