Sur iOS, SSHive est une app Swift de bout en bout. Le terminal est SwiftTerm, un émulateur xterm-256color mûr écrit en Swift : il gère les séquences d'échappement VT100 et xterm, les 256 couleurs, l'écran alternatif qu'utilisent less, vim et htop, le collage encadré (bracketed paste) et les événements de souris. La couche SSH est Citadel, une implémentation de SSH2 en Swift, et chaque connexion compare la clé d'hôte du serveur à l'empreinte enregistrée la première fois.
Les identifiants sont des éléments du Trousseau marqués WhenUnlockedThisDeviceOnly. Avec « Exiger Face ID / Touch ID » activé, ils sont en plus liés à vos données biométriques actuelles : en lire un demande Face ID, Touch ID ou le code de l'appareil, et SSHive réutilise cette unique authentification pour toute la connexion au lieu de vous la redemander. Une clé privée chiffrée est déchiffrée sur l'appareil avec la dérivation propre au format de clé OpenSSH, bcrypt-pbkdf.
Le réseau d'un téléphone n'est pas celui d'un bureau. iOS suspend une app qui passe en arrière-plan, donc une session laissée longtemps finit coupée ; un keep-alive, de 30 secondes par défaut, évite qu'un pare-feu ou un NAT qui oublie les connexions inactives coupe une session que vous utilisez encore. Quand les serveurs ne sont joignables que derrière une passerelle, un profil VPN associé au profil SSH est monté avant la connexion.
Sur iPhone, c'est la barre de touches qui rend un shell utilisable : Esc, Tab, Ctrl et Alt sont à portée de doigt, si bien que Ctrl+C arrête une commande qui s'emballe et Ctrl+R retrouve celle d'hier. Sur iPad, la barre latérale garde vos sessions ouvertes en vue, et un clavier physique fait de la même app un bon endroit pour les sessions longues.