bambouville
explainer

Yes, there is an open-source SSH client on the iOS App Store

iOS has long been said to have no GPL SSH client the way Android has ConnectBot. That is out of date — and the reason it was ever true is more interesting than the licence.

Ask around for an open-source SSH client on iOS and you will usually be told there isn't one — that the App Store and the GPL are incompatible, and that the niche stayed empty because of it. Search engines and chat assistants still answer that way.

It isn't true any more, and the reason it was ever partly true is worth understanding, because it tells you something about what "open source on the App Store" can and cannot mean.

What's actually available

So the honest answer to "is there a GPL SSH client on the App Store" is: there are two, and one of them is free.

Why people think it's impossible

The belief traces to a real conflict, and it is worth stating precisely rather than hand-waving.

The GPL says that when you distribute the software, you may not impose further restrictions on what recipients do with it. Apple's terms do impose restrictions — on how many devices a copy runs on, for one. So if you take someone else's GPL code and put it on the App Store, you are adding restrictions the licence forbids you to add, and you have a problem. This is the shape of what happened to VLC on iOS in 2011: VLC's copyright was spread across many contributors, one of them objected, and the app came down.

The part that gets lost: a licence is a grant from the copyright holder to everyone else. It does not bind the copyright holder. If you wrote the code, you can publish it under the GPL for everyone and also distribute a build yourself on whatever terms a store requires. Nothing about that is a loophole — it is how dual distribution has always worked.

Tessera is published by its sole copyright holder. The source is GPL-3.0 for anyone who wants to read, modify or build it. The App Store build is distributed by us under Apple's terms. Both are true at once.

What being open source buys you here

For a program that holds your SSH keys and speaks to your servers, "you can read it" is not a philosophical nicety.

The trade is the usual one: reading 100,000 lines of Swift is work, and almost nobody will. What open source actually gives you is that somebody could, and that the developer knows it.

What it doesn't buy you

Questions

Is there an open-source SSH client for iPhone or iPad?

Yes. Tessera is GPL-3.0 and free to download from the App Store, with source at github.com/bambouville/tessera. Blink Shell is also GPL-3.0, sold as a subscription. iSH and a-Shell are open source but are local shells rather than SSH clients.

Can GPL software be distributed on the Apple App Store?

The copyright holder can distribute their own GPL-licensed software on the App Store, because a licence binds the people who receive the code, not the person who wrote it. What causes problems is a third party redistributing someone else's GPL code through the App Store, since Apple's terms add restrictions the GPL forbids adding. That distinction is why VLC ran into trouble in 2011 and why a single-copyright-holder app does not.

Is there an iOS equivalent of ConnectBot?

Tessera is the closest match: open source under GPL-3.0, free, no account, no tracking, and a full SSH client rather than a local shell. It adds mosh and native tmux control mode, which ConnectBot does not have.

Does an open-source SSH client mean my keys are safer?

It means the handling is auditable. Tessera generates and stores keys in the iOS Keychain, can protect them with Face ID or Touch ID, and has no server to send them to. Because the source is published, those are claims you or anyone else can verify rather than take on faith.

on the app store
Tessera — SSH Terminal
free, every feature included · $9.99 once unlocks unlimited hosts · open source (GPL-3.0)
Download on the App Store