Was Sie brauchen
- Einen Server, der SSH annimmt, mit Adresse, Port (22, sofern nicht geändert) und Benutzername.
- Einen Netzwerkweg vom Handy aus. Ein Server mit öffentlicher Adresse ist von überall erreichbar. Ein Server zu Hause oder im Büro meist nicht, wie weiter unten erklärt.
- Einen Schlüssel auf dem Handy oder ein Passwort, falls der Server es noch erlaubt.
- Eine SSH-Client-App. iOS bringt keine mit.
Einen privaten Server erreichen
Ein Handy im Mobilfunknetz befindet sich nicht in Ihrem Heim- oder Firmennetz, deshalb laufen Adressen wie 192.168.x.x in ein Timeout. Es gibt zwei Wege:
- VPN oder Overlay-Netz (empfohlen). Bringen Sie Handy und Server mit WireGuard oder einem ähnlichen Werkzeug in dasselbe private Netz. Dann muss Port 22 gar nicht aus dem Internet erreichbar sein.
- Portweiterleitung im Router. Damit ist SSH für das ganze Internet offen, und es funktioniert nicht, wenn Ihr Anbieter Sie hinter Carrier-Grade NAT setzt. Falls Sie es doch tun, schalten Sie zuerst die Passwort-Anmeldung ab. Siehe SSH-Passwort-Anmeldung deaktivieren.
Eine Verbindung, die hängt und dann scheitert, deutet auf ein Netzwerkproblem hin, nicht auf ein Anmeldeproblem. Siehe Connection timed out.
Schlüssel auf dem Handy
Erzeugen Sie einen neuen Schlüssel auf dem Handy, in der App, und kopieren Sie nicht den privaten Schlüssel Ihres Laptops hinüber. Beim Kopieren wandert der Schlüssel durch E-Mail, Nachrichten oder einen Cloud-Ordner, und bei einem verlorenen Handy müssten Sie diesen Schlüssel überall ersetzen, wo Sie ihn nutzen.
Mit einem Schlüssel pro Gerät entfernen Sie eine Zeile aus authorized_keys und das Handy ist ausgesperrt, während Ihr Laptop weiter funktioniert. Wählen Sie Ed25519 und vergeben Sie eine Passphrase, wenn die App das erlaubt.
Kopieren Sie den öffentlichen Schlüssel der App auf den Server, über eine Sitzung, die Sie bereits haben:
echo 'ssh-ed25519 AAAA...your-public-key... iphone' >> ~/.ssh/authorized_keys
Sie können einschränken, was dieser Schlüssel darf. Diese Zeile erlaubt ein Terminal, aber keine Tunnel und keine Weiterleitung, und akzeptiert den Schlüssel nur aus einem VPN-Adressbereich, sodass ein gestohlener Schlüssel weniger wert ist:
from="10.0.0.0/24",restrict,pty ssh-ed25519 AAAA...your-public-key... iphone
In unserem Test meldete sich der Schlüssel von einer passenden Adresse an und wurde von einer anderen abgelehnt, die Weiterleitung war blockiert. Lassen Sie from= weg, wenn Ihr Handy keinen festen Adressbereich hat.
Fingerprint beim ersten Verbinden prüfen
Beim ersten Mal zeigt die App den Fingerprint des Server-Schlüssels an. Vergleichen Sie ihn mit dem echten, aus einer Sitzung, der Sie vertrauen:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
Auf dem Handy ist das wichtiger, weil Sie öfter in Netzen unterwegs sind, die Sie nicht kontrollieren. Lesen Sie dazu wie known_hosts funktioniert.
Warum die Verbindung abbricht und was Sie tun können
iOS hält Apps kurz nach dem Verlassen des Bildschirms an, und eine angehaltene App kann ihre Netzwerkverbindung nicht aufrechterhalten. Sie kann eine kurze Verlängerung anfordern, aber wie lang sie ausfällt, entscheidet das System. Wenn die App im Hintergrund nicht verbunden bleiben kann, beendet schon ein paar Minuten in einer anderen App oder ein gesperrtes Handy die Sitzung. Auch ein Netzwechsel, etwa von WLAN auf Mobilfunk, unterbricht eine gewöhnliche SSH-Verbindung. Keep-Alive-Einstellungen helfen in keinem der beiden Fälle.
Kämpfen Sie also nicht dagegen an. Führen Sie Ihre Arbeit in tmux auf dem Server aus und hängen Sie sich nach jedem Wiederverbinden wieder an:
tmux new -A -s phone
Programme darin laufen weiter, während das Handy weg ist. Details finden Sie unter SSH-Sitzungen mit tmux am Leben halten. Starten Sie von einem Handy aus keinen langen Auftrag außerhalb von tmux.

Mosh ist die andere Antwort auf ein wechselndes Netz. Lesen Sie Mosh oder SSH: Was ist der Unterschied?, bevor Sie es auf dem Server installieren.
Wie Sie eine App auswählen
- Zusatztasten. Esc, Tab, Strg und Pfeile müssen mit einem Tipp erreichbar sein. Die iOS-Tastatur hat keine davon.
- Schlüssel. Die App sollte Ed25519-Schlüssel erzeugen, den öffentlichen Schlüssel anzeigen und eine Passphrase erlauben.
- Prüfung des Host-Schlüssels. Sie sollte beim ersten Verbinden den Fingerprint zeigen und anhalten, wenn er sich ändert.
- Wo Geheimnisse liegen. Achten Sie auf den iOS-Schlüsselbund oder starke Verschlüsselung, und lesen Sie, was der Hersteller zur Synchronisierung sagt.
- App-Sperre. Wenn jemals jemand anderes Ihr entsperrtes Handy in der Hand hält, zählt eine App-Sperre mit Face ID oder Code.
- Wiederverbinden. Prüfen Sie, ob die App im Hintergrund verbunden bleibt, ob sie sich selbst wieder verbindet und ob sie nach der Anmeldung einen Befehl wie die tmux-Zeile oben ausführen kann. Manche Apps bieten Mosh, ein eigenes Protokoll, das Netzwechsel übersteht und eine Komponente auf dem Server braucht.
- Qualität des Terminals. Probieren Sie tmux und vim darin aus, bevor Sie sich darauf verlassen.
Fragen
Hat das iPhone einen eingebauten SSH-Client?
Nein. iOS hat kein Terminal und keinen ssh-Befehl, für eine interaktive Sitzung brauchen Sie also eine SSH-Client-App. Die App Kurzbefehle kann nur ein Skript über SSH ausführen.
Warum trennt sich meine SSH-Sitzung auf dem iPhone?
iOS hält Apps kurz nach dem Verlassen des Bildschirms an, und eine angehaltene App kann ihre Verbindung nicht offen halten. Arbeiten Sie in tmux auf dem Server und hängen Sie sich wieder an, oder nutzen Sie Mosh bei Netzwechseln.
Kann ich mich vom iPhone mit einem SSH-Schlüssel anmelden?
Ja. Erzeugen Sie in der SSH-App einen Ed25519-Schlüssel und tragen Sie seinen öffentlichen Schlüssel auf dem Server in authorized_keys ein. Nutzen Sie einen Schlüssel pro Gerät, dann sperren Sie ein verlorenes Telefon mit einer gelöschten Zeile aus.
Quellen
- sshd(8), Format von authorized_keys, OpenBSD-Handbuch
- tmux(1), OpenBSD-Handbuch
- Extending your app's background execution time, Apple Developer
- WireGuard