Tout ce que fait l'app, à peu près dans l'ordre où vous en aurez besoin : de votre premier hôte SSH au contrôle du quatrième écran d'un Mac resté à la maison. Écrit pour SharkTTY sur iPhone et iPad, et pour l'app compagnon gratuite SharkTTY Desk sur le Mac.
Aucun compte n'est requis pour atteindre vos propres serveurs. Toutes les fonctionnalités décrites ici sont gratuites.
SharkTTY ouvre un shell sur tout ce qui fait tourner un sshd standard : un VPS, un NAS, un Raspberry Pi, un poste de travail. Le SSH simple n'a besoin de rien à l'autre bout. Mosh et ET demandent chacun leur petit paquet côté serveur, et les deux sont facultatifs.
Ouvrez les Réglages, allez dans l'onglet Hôtes et touchez + en haut à droite. Un nouvel hôte comporte quatre champs à remplir et plusieurs que vous pouvez ignorer au début.
Le mot de passe a deux modes. Enregistrer le mot de passe le garde dans le Keychain iOS de cet appareil ; avec la synchronisation activée, il vous suit par le Trousseau iCloud, de bout en bout, jamais par nos serveurs. Saisir à la connexion ne stocke rien et redemande à chaque fois. Si votre serveur envoie ses propres invites — un code à usage unique, un jeton matériel — choisissez plutôt Clavier interactif / 2FA : vous répondez aux invites au moment de la connexion et rien n'est conservé.
Enregistrez l'hôte et touchez-le pour vous connecter. Dans la liste des hôtes, un simple toucher sélectionne, un double toucher connecte directement.
Vous avez déjà un fichier de configuration
Réglages → Hôtes → Importer depuis la config SSH accepte un ~/.ssh/config collé ou un fichier que vous choisissez. Il n'importe que les alias d'hôtes, les adresses, les noms d'utilisateur et les ports — jamais les mots de passe ni les clés privées. Les entrées utilisant ProxyCommand sont ignorées, et une entrée avec ProxyJump est importée comme connexion directe tant que vous ne lui désignez pas un hôte relais à la main.
Les clés vivent dans l'onglet Compte des Réglages. Touchez + et choisissez l'une des trois voies : Générer une clé, Ajouter en collant du texte, ou Importer depuis un fichier.
Les clés privées restent dans le Keychain iOS. Activez Synchroniser via iCloud pour une clé et elle voyage par le Trousseau iCloud jusqu'à vos autres appareils — le même canal de bout en bout qu'Apple utilise pour les mots de passe, pas nos serveurs. Si vous vous connectez à un compte cloud SharkTTY, vos hôtes, scripts, lecteurs et modèles sont synchronisés ; les mots de passe, les clés privées et les phrases secrètes, explicitement, ne le sont pas.
De retour dans l'éditeur d'hôte, Authentification → Méthode → Clé vous laisse choisir la clé de cet hôte. Si la liste est vide, l'éditeur vous le dit et vous renvoie d'abord vers l'onglet Compte.
La première fois que vous atteignez un serveur, SharkTTY récupère sa clé d'hôte et affiche l'empreinte SHA256 avec un bouton Faire confiance et se connecter. Comparez-la à l'empreinte publiée par votre administrateur, ou à ce qu'affiche ssh-keygen -lf sur le serveur lui-même. Une fois acceptée, elle est enregistrée.
Si cette clé change un jour, la connexion s'arrête sur un avertissement au lieu de continuer. La lecture honnête est la suivante : le serveur a été réinstallé ou sa clé a été renouvelée, ou bien quelqu'un s'est glissé entre vous et lui. N'utilisez Faire confiance à la nouvelle clé et reconnecter que lorsque vous savez de quel cas il s'agit.
Pour réépingler délibérément un serveur — après une réinstallation que vous avez faite vous-même — ouvrez l'hôte et utilisez Effacer la clé d'hôte enregistrée. La connexion suivante vous demandera de confirmer la nouvelle empreinte depuis le début.
Les trois vous donnent un shell interactif. Ils diffèrent par ce qu'il faut côté serveur et par ce qui se passe quand le réseau bouge sous vos pieds.
| Transport | Requis côté serveur | Survit à un changement de réseau | Bon à savoir |
|---|---|---|---|
| SSH (direct) | Rien de plus que sshd | Non | Fonctionne avec tout hôte auquel vous savez déjà vous connecter en ssh. |
| Mosh (accéléré) | mosh-server | Oui, en UDP | Passe du Wi-Fi au réseau cellulaire et écho local de votre frappe quand la latence grimpe. |
| ET (expérimental) | etserver, port 2022 par défaut | Oui, en TCP | Pour les réseaux qui bloquent purement l'UDP. Désactivé par défaut ; activez-le d'abord dans les Réglages. |
Mosh prédit ce que vous tapez, si bien que l'écran réagit avant la réponse du serveur. Réglages → Terminal → Mode de prédiction par défaut propose Adaptatif, qui n'active la prédiction que lorsque le lien est lent, plus Toujours et Jamais. Adaptatif est le réglage par défaut et convient à presque tout le monde.
ET est encore en test et reste inactif tant que vous n'avez pas activé le transport ET (Eternal Terminal) dans les Réglages. Une fois activé, il apparaît comme troisième méthode de connexion dans l'éditeur d'hôte. Un point à anticiper : comme l'UDP de Mosh, une connexion de données ET va directement de l'appareil au port etserver et n'est pas relayée par un hôte relais.
iOS suspend les apps peu après qu'elles quittent l'écran : aucun terminal mobile ne peut donc maintenir une connexion TCP ouverte indéfiniment. SharkTTY traite cela sur deux niveaux.
La réponse la plus fiable, quel que soit le transport, reste un multiplexeur sur le serveur. Ajoutez un script de connexion comme tmux new -A -s mobile et chaque reconnexion rattache la même session au lieu de lancer un nouveau shell. Les scripts sont le sujet suivant.
Encore un petit détail qui évite beaucoup d'attente : activez Notifications système pour la cloche dans les Réglages. Quand un terminal sonne sa cloche et que cette session n'est pas celle que vous regardez, iOS envoie une notification. Ajoutez printf '\a' à la fin d'une commande longue et votre téléphone vous prévient quand elle se termine.
Dans SharkTTY, un script est un bloc de texte shell qui s'exécute dans le terminal juste après l'ouverture de la connexion. Réglages → Scripts, touchez +, puis partez d'un script vide ou choisissez Nouveau depuis un modèle.
Le sélecteur de modèles est regroupé selon ce pour quoi les gens se reconnectent vraiment :
Renseignez la Plateforme d'un hôte et le sélecteur se restreint aux modèles qui correspondent à cette machine : on ne vous proposera pas apt sur une machine Alpine. Modifiez ce qu'un modèle génère, et utilisez Enregistrer comme modèle pour garder votre version pour la prochaine fois.
Attachez un script à un hôte dans l'éditeur d'hôte et il s'exécutera à chaque connexion. Ou laissez l'hôte vierge et choisissez au moment de vous connecter : dans la liste des hôtes, Se connecter avec le script et Se connecter directement sont deux actions distinctes, et un double toucher sur un script s'y connecte avec.
Au-dessus du clavier système se trouve une barre d'accessoires avec les touches qu'un terminal réclame et qu'iOS n'a pas : Échap, Ctrl, Tab et les flèches, plus des boutons pour téléverser un fichier, afficher ou masquer le clavier, et activer le dispositif de pointage.
Réglages → Clavier → Clavier virtuel bascule entre le clavier système et Flottant, le clavier à l'écran de SharkTTY. Le clavier flottant est un vrai clavier complet, pas une bande : symboles, Tab, Entrée, modificateurs ⌃⌥⌘, une touche fn et la rangée de touches F, disposés comme un vrai clavier avec une touche Entrée en L sur deux rangées. Déplacez-le où vous voulez, redimensionnez-le, et utilisez le curseur d'opacité de sa fenêtre de réglages pour l'estomper au-dessus du terminal — jusqu'à totalement opaque si vous préférez ne rien voir au travers.
Disposition, dans les mêmes réglages, couvre l'anglais américain, l'anglais britannique, le japonais (JIS), le français (AZERTY), l'allemand (QWERTZ) et l'espagnol. Une bande de suggestions au-dessus des touches propose des mots probables et des commandes courantes pendant que vous tapez. Le bouton micro de la barre supérieure a deux comportements : touchez-le pour passer au panneau vocal, ou maintenez-le pour parler directement dans la bande de suggestions.
Le rapport de souris décide qui reçoit votre trackpad. Activé, les clics et les glissements d'un trackpad ou d'une souris connectés sont envoyés aux programmes qui les comprennent — vim, tmux, htop, less. Désactivé, le pointeur sélectionne le texte à la place. Cela ne change quelque chose que lorsqu'un programme a effectivement demandé la prise en charge de la souris. Sur iPad, les claviers et trackpads externes fonctionnent partout.
Maintenez le micro pour parler. La reconnaissance tourne sur l'appareil : gratuite, hors ligne, instantanée, et rien n'est envoyé nulle part. Ce qu'elle a entendu arrive dans le panneau vocal sous forme de texte modifiable, et Insérer le tape dans le terminal.
Les enregistrements sont conservés par segments : vous pouvez en rogner un et reconnaître à nouveau cette seule partie au lieu de tout redire. L'Historique conserve les enregistrements passés pour les réécouter et retenter. Sur iPad, le panneau vocal flotte et se redimensionne comme le clavier transparent.
L'IA est facultative et distincte de la reconnaissance. Ajoutez un fournisseur dans les Réglages avec votre propre clé — les formats d'API OpenAI, Claude, Gemini, Kimi et GLM sont pris en charge — et définissez un modèle de dialogue, plus un modèle de transcription si ce fournisseur en propose un. Claude ne fait que du dialogue et n'a pas d'API audio : les enregistrements y basculent vers la reconnaissance sur l'appareil. Les clés de fournisseur restent dans le Keychain de cet appareil et ne sont jamais synchronisées.
Avec un fournisseur connecté, les modes d'invite réécrivent ce que vous avez dit en texte propre ou en commande prête à exécuter, et Joindre le contexte du terminal permet au modèle de voir ce qui est à l'écran avant de répondre. Le panneau de dialogue place une conversation à côté de la session, pour poser une question sans la quitter.
Si vous préférez ne pas apporter de clé, des modèles cloud officiels sont disponibles dès que vous vous connectez à un compte SharkTTY. Ils se paient en Points, achetés par achat intégré et partagés entre vos appareils. La reconnaissance sur l'appareil reste gratuite dans les deux cas.
Il y a deux façons d'envoyer un fichier sur un serveur, et elles conviennent à des moments différents.
L'onglet Fichiers des Réglages associe comme lecteurs les espaces de stockage accessibles depuis l'appareil : iCloud Drive, un dossier partagé, un dossier local à l'app, ou un serveur WebDAV par URL. Une fois associé, un lecteur se parcourt dans le même gestionnaire de fichiers : c'est ainsi qu'un fichier passe d'un NAS à un serveur sans ordinateur portable entre les deux.
Les connexions s'ouvrent dans des onglets que vous pouvez renommer. Mosaïque de toutes les connexions les affiche ensemble ; Diviser gauche/droite et Diviser haut/bas en placent deux côte à côte ; Mettre cette connexion au premier plan en ramène une en plein écran. Sur iPad, c'est la différence entre surveiller un déploiement et surveiller un journal pendant qu'un déploiement tourne.
Les bureaux à distance vivent dans le même espace de travail que les terminaux : une session Mac et trois shells peuvent partager la grille.
Renseignez Hôte relais (ProxyJump) dans l'éditeur d'hôte pour vous connecter d'abord au bastion et atteindre le véritable hôte à travers lui. L'hôte relais s'authentifie avec sa propre clé ou son propre mot de passe enregistrés, sans interaction ; un bastion qui exige une connexion clavier interactif n'est pas encore pris en charge.
Seule la connexion SSH passe par l'hôte relais. L'UDP de Mosh et la connexion de données d'ET vont directement de l'appareil à la cible, ce qu'il vaut mieux vérifier avant de compter sur l'un ou l'autre depuis l'extérieur du réseau.
La seconde moitié de SharkTTY est un bureau à distance complet pour Mac. Elle demande une app compagnon gratuite sur le Mac — SharkTTY Desk — et aucune ouverture de port, aucun VPN, aucune configuration de routeur.
SharkTTY Desk est gratuit et fonctionne sur macOS 14 Sonoma ou une version ultérieure, sur un Mac Apple Silicon (M1 ou plus récent). Téléchargez l'image disque depuis la page de l'app Mac, glissez SharkTTY Desk dans Applications et ouvrez-le. Il n'a pas d'icône dans le Dock ; il se tient dans la barre des menus, avec une fenêtre que vous ouvrez depuis là.
Deux autorisations sont nécessaires au premier lancement, et le panneau de l'app renvoie directement au bon volet de Réglages Système → Confidentialité et sécurité :
Vérifiez les versions avant de commencer. SharkTTY Desk 0.9.0 nécessite SharkTTY 1.6 ou une version ultérieure sur l'iPhone ou l'iPad, et l'audio bidirectionnel nécessite la 1.7 ou une version ultérieure. Si vous ne pouvez pas encore mettre l'app à jour, l'ancienne build SharkTTY Desk 0.5.0 fonctionne toujours avec les apps antérieures à la 1.6.
Dans SharkTTY sur l'iPhone ou l'iPad, touchez + et choisissez Ajouter un bureau à distance. Il y a trois façons de le renseigner :
Donnez au bureau un nom que vous reconnaîtrez, puis Enregistrer et connecter. Si le Mac est réglé pour demander avant de laisser entrer quelqu'un, l'app attend pendant que la personne devant le Mac touche Autoriser.
Quelqu'un peut aussi partager un Mac avec vous par lien. Les bureaux partagés apparaissent dans Partagés avec moi une fois que vous êtes connecté. Un partage peut être en lecture seule, peut expirer, peut être révoqué à tout moment, peut plafonner le nombre de personnes connectées en même temps, et peut être limité à certains comptes.
Un Mac équipé de plusieurs moniteurs les envoie tous. Disposition des écrans définit la mise en page — Côte à côte, Empilé, Quadruple ou Image dans l'image — et vous pouvez réordonner les écrans pour qu'ils correspondent à leur position sur votre bureau. Chaque écran est diffusé à la demande, et c'est ce qui garde utilisable sur un téléphone un Mac à trois moniteurs.
Touchez un écran pour en prendre le contrôle ; changer d'écran redirige la frappe et le pointeur vers le nouveau. Agrandir met un seul écran en grand quand vous voulez du détail. En mode ajustement, vous pouvez glisser l'image pour la repositionner et pincer pour zoomer.
Le toucher direct est le plus rapide : un doigt fait glisser le pointeur sans cliquer, et un second doigt clique là où il se trouve. Un toucher à deux doigts est un clic droit.
Pour le travail précis, il y a une souris virtuelle avec boutons gauche, milieu et droit : appuyez longuement pour verrouiller un glissement, et un geste de molette permet de faire défiler. Les boutons peuvent être ancrés en un seul panneau le long du bas de l'écran, qui coulisse à gauche ou à droite là où votre main se pose, et remonte au-dessus du clavier à l'écran quand l'un d'eux est ouvert.
La loupe montre la zone sous votre doigt en résolution native : c'est ainsi qu'on coche une case dans une fenêtre de réglages depuis un téléphone. Avec les boutons de souris ancrés, elle se place juste au-dessus du curseur au lieu de dériver vers un bord de l'écran. ⌘, ⌥ et ⌃ se comportent en modificateurs à usage unique : touchez-en un, puis touchez la touche à laquelle il s'applique.
Un seul bouton de clavier, avec un menu de mode, bascule entre le clavier flottant de SharkTTY et le clavier système accompagné d'une barre d'outils de raccourcis. Le clavier flottant porte les modificateurs et les touches F que macOS attend et qu'iOS ne propose pas.
Un menu d'actions rapides envoie les raccourcis pénibles à taper : Recherche Spotlight, Mission Control, Fenêtres d'app et Changer d'app ; Moitié gauche, Moitié droite, Remplir, Centrer, Réduire et Masquer l'app ; Fermer la fenêtre, Quitter l'app et Forcer à quitter ; captures de zone et d'écran entier ; et Verrouiller l'écran. Le presse-papiers se synchronise dans les deux sens : vous copiez sur le Mac et collez sur le téléphone.
La vidéo est du H.264 encodé matériellement et capturé avec ScreenCaptureKit, et c'est le client qui choisit le niveau : xHD restitue les pixels natifs du Mac, HD et Standard troquent de la netteté contre de la bande passante, et Fluide privilégie la fréquence d'images sur tout le reste.
Laissez Réduction auto sur lien faible activée et la session redescend d'elle-même quand le réseau faiblit, puis s'y tient au lieu de saccader. Sur le même Wi-Fi que le Mac, xHD passe généralement sans problème.
Audio distant amène le son système du Mac sur l'appareil : une vidéo ou un appel sur le Mac s'entend dans votre main. Entrée micro va dans l'autre sens et transforme l'iPhone ou l'iPad en micro du Mac, ce qui couvre les appels, les enregistrements et la dictée faits sur le Mac pendant que vous n'êtes pas devant.
Les deux sens nécessitent SharkTTY 1.7 ou une version ultérieure sur l'appareil. L'audio lui-même est transporté en Opus.
L'écran virtuel, encore en bêta, crée un écran supplémentaire sans affichage dédié, dimensionné pour votre iPad. C'est la réponse pour un Mac mini sans moniteur, et pour emporter un second espace de travail avec soi.
Desk peut réveiller un Mac en veille via le réseau et le garder éveillé pendant que vous êtes connecté. Il peut aussi, si vous l'y autorisez, afficher la fenêtre de connexion macOS pour que vous saisissiez votre mot de passe et déverrouilliez la machine à distance après un redémarrage.
Les deux extrémités composent vers l'extérieur : il n'y a jamais de port à ouvrir sur un routeur. Ce qui change, c'est le chemin sur lequel elles se rencontrent.
Les sessions sont chiffrées de bout en bout et un relais ne fait jamais que transmettre du texte chiffré. Sur un réseau local, plusieurs iPhone et iPad peuvent voir et contrôler le même Mac en même temps ; le Mac peut exiger une approbation pour chaque nouveau spectateur et en expulser n'importe lequel d'un geste.
Si vous préférez ne toucher aux serveurs de personne, le relais est open source. Faites tourner desk-relay sur n'importe quelle machine publique : il écoute en QUIC sur l'adresse passée à --bind et sert le repli WebSocket sur --wss-bind, et la création de liens est protégée par un secret partagé que vous choisissez. Pointez SharkTTY Desk vers cette adresse, scannez le lien de relais qu'il affiche alors, et vous êtes le seul tiers par lequel le trafic transite. Aucun compte SharkTTY n'intervient.
Soit mosh n'est pas installé sur le serveur, soit il n'est pas dans le PATH d'une connexion SSH non interactive. Installez mosh, ou renseignez le chemin absolu de mosh-server pour cet hôte dans Réglages → Hôtes — /usr/bin/mosh-server sur la plupart des machines Linux, /opt/homebrew/bin/mosh-server sur un Mac Apple Silicon.
etterminal manque sur la machine distante, ou n'est pas dans le PATH d'une session SSH non interactive. Installez-y Eternal Terminal (apt install et, brew install et), vérifiez qu'etserver tourne et que son port — 2022 sauf si vous l'avez changé — n'est pas bloqué par un pare-feu, puis réessayez. SSH et Mosh continuent de fonctionner entre-temps.
C'est le contrôle qui fait son travail. Une cause légitime est un serveur réinstallé ou une clé renouvelée ; l'illégitime, c'est quelqu'un au milieu. Déterminez laquelle avant de toucher Faire confiance à la nouvelle clé et reconnecter et, si vous avez reconstruit la machine vous-même, utilisez Effacer la clé d'hôte enregistrée dans l'éditeur d'hôte et confirmez délibérément la nouvelle empreinte.
Deux limites s'appliquent. Les fichiers sont plafonnés à 64 MB, et l'hôte a besoin d'un identifiant que l'app peut réutiliser — un serveur dont la seule connexion est un code à usage unique ne peut pas servir aux envois. Passez par le gestionnaire de fichiers SFTP, ou par un lecteur associé, pour tout ce qui est plus gros ou plus délicat.
Vérifiez que SharkTTY Desk y tourne vraiment, et pas seulement qu'il est installé. Si le Mac est peut-être en veille, activez son réveil par le réseau dans Desk. Entre réseaux différents, une connexion peut prendre quelques secondes pendant que l'app tente un chemin direct avant de se rabattre sur un relais.
Une image noire signifie presque toujours que l'enregistrement de l'écran n'a pas été autorisé ; une image qui ne répond pas signifie que l'accessibilité ne l'a pas été, ou qu'Autoriser le contrôle est désactivé. Les deux se trouvent dans Réglages Système → Confidentialité et sécurité sur le Mac, et Desk y renvoie directement.
Vérifiez les versions : SharkTTY Desk 0.9.0 nécessite SharkTTY 1.6 ou une version ultérieure sur le téléphone ou la tablette. Mettez à jour depuis l'App Store, ou installez l'ancienne build SharkTTY Desk 0.5.0, qui fonctionne avec les versions antérieures de l'app.
Rien dont vous ayez besoin. L'app, l'app compagnon Mac, la reconnaissance vocale sur l'appareil et toutes les fonctionnalités ci-dessus sont gratuites, et se connecter à ses propres serveurs ne demande aucun compte. Les modèles d'IA cloud officiels se paient en Points ; avec votre propre clé de fournisseur, cela ne coûte rien. Les pourboires sont facultatifs, ponctuels ou mensuels, et ne débloquent aucune fonctionnalité — un pourboire mensuel se renouvelle jusqu'à ce que vous l'annuliez dans les réglages de votre compte Apple.
SharkTTY est gratuit sur l'App Store, et SharkTTY Desk pour Mac est en téléchargement gratuit.
Plus de détails côté Mac sur la page SharkTTY Desk et les questions trouvent leur réponse le plus vite sur le tableau de retours.