Skip to content

SSH from Phone in 2026: What Works, What Breaks

By Cosyra Editorial Team

Published Last updated 11 min read

Short answer. You can SSH from your phone today on either iPhone or Android, and people do it daily. The three real paths are a polished SSH client (Termius, free tier), a mosh-capable iOS client (Blink Shell, $19.99/year), or a full Android shell with OpenSSH inside it (Termux + openssh-client). What breaks is rarely the client. It's the laptop you SSH into going to sleep, the cellular network handing off mid-edit, and tmux feeling miserable on a glass keyboard. We'll show what works, what doesn't, and where a managed cloud terminal fits.

We wrote this from the train, the same one we always use as a test rig. We have an iPhone 15 Pro and a Pixel 8 in the bag, a laptop on a Tailscale tailnet at home running tmux, and a Cosyra container in the cloud with the same agents pre-installed. Both setups answered the same prompt about a failing test. One needed three pieces of infrastructure to keep working in a tunnel. The other needed an internet connection.

This post was written by the Cosyra team. We compared three honest ssh-from-phone setups against our own product based on hands-on use of both, first-hand reads of mosh.org, the Termius and Blink Shell official sites, the Tailscale docs, and our internal factsheets at .claude/growth/competitor-facts/. Claims and pricing are current as of 2026-05-02.

tl;dr

Use SSH from your phone if you already run a server you own (laptop, VPS, home lab) and you want the cheapest path to coding from mobile. Add mosh and tmux or the experience falls apart. Use Cosyra if you don't want to babysit a server, you want Claude Code, Codex CLI, OpenCode, and Gemini CLI already there, and you want the same environment on iPhone, Android, and web.

App Store · Google Play. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.

Tired of maintaining the SSH stack? We ship a per-user Ubuntu 24.04 container with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed, reached from a native iOS or Android app. No Tailscale, no tmux, no laptop that has to stay awake.

App Store · Google Play · Pricing. 1 hour free on signup, no credit card.

How does SSH from a phone actually work?

SSH from a phone is a phone-side client app talking to an SSH server on another machine. The phone never runs your code. It runs a terminal that forwards your keystrokes to a Linux box that does. The interesting part is everything else: how the phone reaches the box (Tailscale, port-forward, public IP), what survives a network drop (mosh vs raw SSH), and how the session persists when you switch apps (tmux). The client is the easy part of the stack. Most ssh-from-phone failures are at one of those three other layers.

Three layers, each with a real failure mode:

Each of those three pieces does a different job. Skipping one breaks the setup in a specific way: no Tailscale and you're managing port-forwards or paying for a static IP, no mosh and your session dies in subway tunnels, no tmux and your work disappears when you switch to Slack to answer a DM. Practitioners who run this stack daily, like the author of "Agentic coding from anywhere", name all three and call out that the workflow falls apart without any of them.

What SSH clients do people actually use on phones?

Three clients show up in nearly every Hacker News thread on this topic and in every practitioner blog. We've used all three. Here is the honest rundown as of 2026-05-02.

Termius (iOS, Android, macOS, Windows, Linux)

Termius is the most polished cross-platform SSH client we've used. The free Starter tier covers SSH, SFTP, port forwarding, and an AI command autocomplete called Gloria Ops. Pro is $10/month annual for vault sync across devices. Team adds multiplayer terminal sessions at $20/user/month. The killer feature for phones is the encrypted vault: define a host once on your laptop, your phone has it, your iPad has it. Termius is a client though, not an environment. You still bring the server to SSH into.

Blink Shell (iOS only)

Blink Shell is the iOS terminal we recommend if you live on iOS and want mosh. $19.99/year subscription, open-source on GitHub. It supports both SSH and Mosh, has a real Bluetooth keyboard story, and pairs with external 4K displays. The Blink Code product line adds a VS Code experience over SSH or GitHub Codespaces. Blink also operates Blink Build — a managed cloud VM in open beta gated to Blink Plus — for the case where you want the server side included; see our comparison for the trade-offs. Outside Build, Blink Shell is a client, full stop. Like Termius, you need a server with the actual tools installed for it to be useful.

Termux + openssh-client (Android only)

Termux is a different category. It's a real Linux environment on Android, not just an SSH client. Install openssh from APT and you have a full SSH client and server. Install tmux, mosh, git, and node and the phone itself becomes a small Linux box. Termux is Android-only; it was off the Google Play Store from 2020 to 2024 and returned in June 2024 as a separately-versioned official build (Android 11+), while F-Droid and the GitHub releases remain the channels most install guides reference. Two real caveats: Android 12+'s phantom-process killer can terminate long-running sessions (GitHub issue #2366), and the ARM userland breaks the long tail of Linux binaries that assume glibc on x86_64. Our Cosyra vs Termux comparison walks through both in detail.

On iOS there's no Termux. The closest local-Linux option is iSH (Alpine via x86 emulation, free, measurably slow); see our Cosyra vs iSH guide for the measured numbers. For "an SSH client that talks to a real Linux box" Blink or Termius are the right call.

Want the server side already done? Cosyra ships an Ubuntu 24.04 container with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed. Reached from a native app, no SSH client to configure.

App Store · Google Play · Pricing. 1 hour free on signup, no credit card.

What actually breaks when you SSH from a phone?

Five failure modes show up in practice. We've hit each one. The first three are mostly solvable; the last two are why we stopped using ssh-from-phone as our daily driver.

1. Your laptop goes to sleep

The single most common failure. Your laptop is the SSH server in this setup. When it sleeps, suspends, or hits a kernel update, your phone has nothing to connect to. Wake-on-LAN works on the same network. Across the internet, you can use a "sleep on idle, wake on unicast" pattern, but that requires router configuration and tolerance for the first SSH attempt to fail while the machine wakes up. We've ended a Friday-evening edit because the laptop installed updates and we couldn't reach it from the train.

2. Mobile network handoffs kill the TCP connection

Wi-Fi to cellular, cellular to a different cell tower, walking through a train tunnel — each one breaks the TCP socket that plain SSH rides on. Without mosh, your shell dies, your tmux session is fine on the server but you have to reconnect and reattach. With mosh, the client and server keep a little state machine running and the connection picks itself back up. The mobile-shell/mosh issue tracker documents some edge cases (tmux status-bar rendering, specific terminal apps), but the core reconnect behavior is solid. If you're SSHing from cellular and not using mosh, the tunnel-cell-train-handoff trio will eat your day.

3. tmux on a glass keyboard is genuinely annoying

The HN commenters are right about this one. We've had a Termius session open on the iPhone, fingers hovering, trying to fire Ctrl-b d to detach, and missing the Ctrl by half a key three times. Soft keyboards with a customizable key-row help (Termius and Blink both have one). External Bluetooth keyboards solve it entirely, which is great if you're at a coffee shop with a folding keyboard and worse if you're standing on a crowded subway. Our opinion most ssh-from-phone advocates would push back on: the right answer to "tmux is annoying on glass" is to do less in tmux on the phone, not to perfect the muscle memory. Direct an agent in short prompts. Read diffs. Approve. The character-by-character work belongs at the desk.

4. NAT, public IPs, and the home network are real

If your "server" is a laptop on home Wi-Fi, you have a routing problem. Either you forward port 22 (and now your home router is exposing SSH to the public internet, with all the brute-force scanning that comes with that), or you run Tailscale. We always run Tailscale in this setup; we wouldn't expose port 22. Tailscale removes the routing problem entirely on personal use up to 100 devices as of 2026-05-02. The cost is one more piece of software, one more identity to manage.

5. The agent has to be installed somewhere

The whole point of SSHing from your phone in 2026 is usually to drive an AI coding agent. That agent has to be running on the machine you SSH into. If the laptop is your office machine, the agent isn't installed at home. If you reformatted last weekend, you're reinstalling. If you have three machines (laptop, desktop, VPS), you're maintaining three copies of the agent and keeping them in sync. The "where does the agent live" problem is the one that nudged us toward a managed cloud terminal in the first place. The agents come with the environment.

When is SSH from your phone the right answer?

Three honest cases where ssh-from-phone beats anything we sell:

For everyone else — phone-first developers, people who don't want a laptop fan running 24/7, and the teams who'd rather pay $29.99/month than maintain the SSH+mosh+tmux+Tailscale stack — the calculus changes.

How do you actually set up SSH from your phone?

The honest 15-minute setup. We do this fresh every time we test the workflow on a new device. Three steps, each with a single failure mode.

Step 1: Give the target machine a stable address

Install Tailscale on the laptop or VPS you want to reach and on your phone. Sign in to the same tailnet on both. Now you can ssh user@machine-name from anywhere without port-forwarding, public IPs, or static NAT. Tailscale is free for personal use up to 100 devices as of 2026-05-02.

laptop, joining the tailnet

$ curl -fsSL https://tailscale.com/install.sh | sh

$ sudo tailscale up

Success.

$ tailscale status

100.x.y.z laptop-pop-os linux active

Step 2: Install an SSH client and add your key

On iOS install Termius (free) or Blink Shell ($19.99/yr, mosh support). On Android install Termius or Termux (then pkg install openssh). Generate an Ed25519 key on the phone, copy the public key into ~/.ssh/authorized_keys on the target machine, and test the connection. We use Ed25519 because it's the current default and the keys are short enough to paste between apps.

phone client, generating a key and connecting

$ ssh-keygen -t ed25519 -f ~/.ssh/phone

Generating public/private ed25519 key pair...

$ # copy ~/.ssh/phone.pub into laptop's ~/.ssh/authorized_keys

$ ssh -i ~/.ssh/phone you@laptop-pop-os

Welcome to Pop!_OS 22.04 LTS

Step 3: Run tmux server-side so the session survives sleep

Start a tmux session on the target machine the first time you connect: tmux new -s work. Detach with Ctrl-b d, then re-attach next time with tmux attach -t work. If you swap plain ssh for mosh, the connection itself survives network handoffs; tmux handles app-switch and phone-sleep on top of that. This is the combo every practitioner blog ends up at.

laptop, tmux + claude inside the SSH session

$ tmux new -s work

$ claude

Claude Code (latest)

> Find the failing test in tests/auth and fix it.

$ # Ctrl-b d to detach. Phone goes back in pocket.

$ # Hours later: ssh in, tmux attach -t work

Session restored. Claude is still here.

That's the working version. It is not less software than a managed cloud terminal, it is more — Tailscale, an SSH client, a key, tmux, mosh, plus the agent installed on the laptop. The trade-off is real: free or close to it, but only if you already have the server and the appetite to keep it running.

When does a cloud terminal beat SSH from your phone?

The simple framing: ssh-from-phone is a do-it-yourself dev environment. Cloud terminals like the one we ship are the same thing pre-assembled. You're either paying with software you maintain or money you spend.

A few specific places we think the calculus tips toward managed:

Where we wouldn't sell against ssh-from-phone: anyone who already runs a server, anyone who needs root and kernel access, anyone who really doesn't want their code in someone else's cloud. The SSH path is honest, free or cheap, and well-understood. We have a comparison in the mobile coding terminal pillar that goes deeper into the spectrum.

How do you try Cosyra if you're coming from an SSH workflow?

Same shape as the SSH path, fewer pieces.

  1. Install Cosyra from the App Store or Google Play. Sign in with Apple, Google, or email. The app provisions an Ubuntu 24.04 container on first launch.
  2. Tap into the container. The agents are already on the path. which claude codex opencode gemini returns four results.
  3. Add your Anthropic / OpenAI / Google API key to the container's ~/.bashrc (we don't proxy or meter model billing — you pay the provider directly). Run claude.

No Tailscale, no SSH key copy, no tmux new -s work. The container is the persistence; the phone is the terminal. Sessions hibernate after 10 minutes idle and resume on reopen, so the equivalent of "tmux attach" is reopening the app.

For a deeper walk-through of the agent side specifically, see our Claude Code on phone guide. For the broader landscape of mobile terminal options, the mobile coding terminal pillar maps the whole field.

Frequently asked questions

Can I actually SSH from my phone, or is the keyboard a dealbreaker?

You can SSH from any iPhone or Android phone today. Termius, Blink Shell, and Termux's openssh-client all ship with a key-row that fixes the missing keys (Esc, Tab, Ctrl, arrows). The real friction isn't typing the command — it's what you do once connected. Hacker News commenters who've been doing this "forever" still call out that "Tmux is annoying with a mobile keyboard" and that "too many parts of the UX are designed for a true keyboard." Short prompts work fine. Character-by-character editing is painful.

Why does my SSH session drop when my phone goes to sleep or switches networks?

Plain SSH is TCP-based. When your phone sleeps or hands off Wi-Fi to cellular, the underlying TCP connection breaks and the SSH session dies with it. Mosh is the standard fix. Mosh uses UDP, keeps state server-side, and reconnects automatically when signal comes back. Pair mosh with tmux server-side and your session survives even closing the SSH app entirely.

Do I need to keep my laptop running to SSH into it from my phone?

Yes, in almost every practical setup. SSH is a connection from the phone to a running machine. If the laptop is asleep, suspended, or shut down, there is nothing on the other end. Wake-on-LAN can wake a sleeping desktop on the same network, but it doesn't help when you're on the train and your laptop is in your apartment going through a kernel update. The VS Code Remote SSH project tracks the same class of issues when laptops sleep mid-edit.

What's the best SSH client for iPhone or Android in 2026?

On iOS we keep coming back to Termius (free tier real, $10/month annual for cross-device sync) and Blink Shell ($19.99/year, mosh support — Mosh is what makes it good on cellular). On Android, Termius again, or Termux for a full Linux shell that includes openssh-client. None of these are "best." Termius if you want a polished cross-platform client with a vault, Blink if you live on iOS and want mosh, Termux if you want a real Linux shell on Android instead of just a client.

Can I run Claude Code or Codex CLI by SSHing from my phone?

Yes, with one piece of work upfront: the agent has to be running on the machine you SSH into, not on the phone. Practitioners document a working stack: Tailscale + mosh + tmux + a laptop or VPS with the agent installed. Kareem Fahmy's "agentic coding from anywhere" walkthrough describes the version we recognize: SSH from a phone into a laptop on the tailnet, run Claude Code in tmux, detach and re-attach hours later. It works. It also requires the laptop awake, the agent installed there, and you to maintain the stack.

Is there a Termux for iPhone?

No. Termux is Android-only and depends on Android's NDK toolchain. On iPhone the practical options are iSH (local Alpine via x86 emulation, free, slow), a-Shell (local Unix tools), Blink Shell (an SSH/Mosh client into a server you own), or a cloud terminal that ships a real Ubuntu container reached from a native iOS app. The Hacker News thread on this question is still one of the top search results because nothing on-device has changed the answer.

Pre-installed Claude Code, Codex CLI, OpenCode, and Gemini CLI. We run them in a real x86_64 Ubuntu container, reached from a native iOS or Android app. No Tailscale, no SSH client config, no laptop that has to stay awake.

Mobile coding terminal pillar · Claude Code on phone · Cosyra vs Termux · See pricing. Sign up — 1 hour free, no credit card.