Über SSHive
SSHive wird von Lucas Russo entwickelt und von NetMeSafe herausgegeben, einer in Paris eingetragenen Gesellschaft. Inspiriert von MobaXterm bringt es dieselbe All-in-one-Erfahrung auf Apple-Geräte: SSH, SFTP, RDP und VNC in einer einzigen App auf dem Mac, dem iPhone und dem iPad, einmal im App Store gekauft und auf allen dreien nutzbar.
Die Geschichte
Als Entwickler und Systemadministrator, der von Windows zu macOS gewechselt ist, fehlte mir die All-in-one-Erfahrung von MobaXterm. Ich jonglierte zwischen Terminal, Cyberduck, Microsoft Remote Desktop und einer Handvoll weiterer Werkzeuge. Aus dieser Frustration entstand SSHive: eine einzige App, die SSH, SFTP, RDP und VNC vereint und die auf das System gehört, auf dem sie läuft. Angefangen hat alles auf dem Mac. Die App für iPhone und iPad kam danach, weil der Server, der Aufmerksamkeit braucht, selten im selben Raum steht wie der Laptop, und Pro ist ein Universal-Kauf: einmal auf einem der drei Geräte gekauft, schaltet es die beiden anderen mit frei. Beide Apps werden im App Store verkauft und sonst nirgends. Die Mac-App spricht Englisch, Französisch, Deutsch und Spanisch, die App für iPhone und iPad spricht Englisch, Französisch und Spanisch.
Tech-Stack
Zwei Codebasen, ein Produkt, und die ehrliche Antwort auf eine Frage, die immer wieder gestellt wird: Die Mac-App ist eine Electron-App. Das war der Kompromiss, der es möglich gemacht hat, SSH, SFTP, FTP, RDP, VNC, seriell und Telnet in einem einzigen Fenster auszuliefern, und dort, wo es wirklich darauf ankommt (die RDP-Engine, die ICMP-Werkzeuge, die serielle Konsole), erledigt nativer Code die Arbeit, den die App selbst lädt. Die App für iPhone und iPad ist keine Portierung davon. Sie ist von Grund auf in Swift und SwiftUI geschrieben, ohne eine einzige Webview auf dem Weg einer Verbindung.
Mac
- Electron 37, mit nativer macOS-Integration: Schlüsselbund, Benachrichtigungen und System-Erscheinungsbild
- React und TypeScript, mit Zustand als State-Management
- xterm.js und sein WebGL-Renderer, für ein GPU-beschleunigtes Terminal
- ssh2, eine vollständige Implementierung von SSH und SFTP in JavaScript
- Ein natives FreeRDP-3-Modul für RDP, mit NLA, CredSSP und Active Directory
- noVNC für VNC, mit VNC-Passwort, RSA-AES, VeNCrypt / X.509 und Apple-Bildschirmfreigabe
- Native Module für ICMP-Ping, Traceroute und die serielle Konsole, jedes davon innerhalb der App-Store-Sandbox
- Zod, das jede Nachricht prüft, die die Grenze zwischen den Prozessen überquert
iPhone und iPad
- Swift und SwiftUI ab iOS 17: TabView auf dem iPhone, NavigationSplitView auf dem iPad
- Citadel für SSH und SFTP, und SwiftTerm für die Terminal-Emulation
- FreeRDP 3, für das Gerät gebaut, für RDP mit NLA und NTLM
- RoyalVNC für VNC
- Der Schlüsselbund mit SecAccessControl, hinter Face ID oder Touch ID
- CloudKit, für die mit dem Mac geteilten Profile
- NetworkExtension, für die IKEv2-, IPSec- und OpenVPN-Tunnel, die iPhone und iPad aufbauen können
Was die Apps heute können, zeigen andere Seiten: Die Funktionsseiten gehen jedes Protokoll und jedes Werkzeug einzeln durch, SSHive auf iPhone und iPad stellt die mobile App vor, und die Versionshinweise halten fest, was sich von einer Mac-Version zur nächsten geändert hat.