Skip to main content

SSH Terminal

GPU-accelerated terminal with xterm.js WebGL. Password, key, and agent authentication. Jump hosts, agent forwarding, and automatic reconnection.

SSHive's SSH terminal is the part of the app you will open most. On the Mac it draws with xterm.js and its WebGL renderer, the engine behind VS Code's terminal, so a tail -f that floods the screen still scrolls smoothly. Each profile keeps the host, port and user, the authentication (password, private key, or a key loaded in the macOS SSH agent), a startup command such as cd /var/www && tmux attach, its tunnels, and a colour, tags and a folder so a long server list stays readable. Rather than retyping your servers, import your ~/.ssh/config from the sidebar. Behind a bastion, a profile's Jump Chain (Pro) lists up to 5 hops in order, each one a saved profile with its own credentials, and SSHive opens the whole chain for you; the jump host guide walks through it. If the connection drops, SSHive reconnects on its own in the same tab and brings the profile's tunnels back with it. Passwords and key passphrases are encrypted with a key held in the macOS Keychain and saved in a file that only your user account can read; a profile never holds them in clear text. An optional setting, Require Touch ID before decrypting passwords, is off by default. On iPhone and iPad, the same profiles open in the native SSH client for iOS once iCloud sync, a Pro option, is turned on.

Where it runs and what it costs

Runs on
Mac, iPhone and iPad
Free
Yes, with 2 SSH sessions at a time and 5 saved profiles.
Pro
$12.99 once, for Mac, iPhone and iPad. Unlimited sessions and profiles, and the Jump Chain for bastions.
Compare Free and Pro

Key capabilities

GPU-accelerated rendering with xterm.js WebGL for smooth scrolling even with massive output

Password, private key, and SSH agent authentication methods

Jump Host (ProxyJump) support for multi-hop connections through bastion servers

Automatic reconnection when connections drop unexpectedly

Common SSH workflows

Daily server administration

Keep production, staging, a few VMs and the home lab in one sidebar, sorted into folders, coloured and tagged. Open several servers in tabs, insert a saved command into the one in front of you, and with Pro send the same line to every connected session with broadcast.

Servers behind a bastion

A private subnet reachable only through a bastion is one profile away: add the bastion as the first hop of the target's Jump Chain and SSHive goes through it, with no ProxyJump line to maintain in ~/.ssh/config. Each hop is authenticated from your Mac, so your private key stays on it; agent forwarding is a separate switch you turn on only when a server needs it.

Cloud instances (AWS, GCP, Hetzner)

With a few cloud accounts, you soon end up with a different key for each project or account. Give every profile its own key file, or a key generated in SSHive (Ed25519, ECDSA or RSA 4096), and a server is never offered the wrong one.

SSH terminal, frequently asked questions

Can SSHive import my ~/.ssh/config?+
Yes. Import SSH Config, in the sidebar, opens a file dialog already pointed at ~/.ssh/config: the Mac App Store sandbox lets SSHive read the file only once you confirm it. SSHive then creates one profile per named Host block, with its HostName, User, Port and IdentityFile. ProxyJump becomes a Jump Chain, ForwardAgent the agent-forwarding switch, and LocalForward, RemoteForward and DynamicForward the profile's tunnels. A server already saved with the same address, port and user is skipped, so importing twice creates no duplicates. The free version stops at 5 profiles. Exports from PuTTY, MobaXterm and Royal TSX are imported from Settings > Import / Export.
Which SSH keys can I use?+
Ed25519, ECDSA and RSA private keys, including keys protected by a passphrase: SSHive keeps the passphrase encrypted with your other credentials, so you type it once. Point a profile at an existing key file, or create a key in SSHive (Ed25519, ECDSA or RSA 4096) and copy its public half into the server's ~/.ssh/authorized_keys.
Does the terminal keep up with long output?+
Yes. The terminal draws with the WebGL renderer of xterm.js, on the Mac's GPU, so a build log or a find / scrolls without stutter. What you feel when typing on a distant server is the network round trip, and no terminal can shorten that.
What happens when the connection drops?+
SSHive reconnects on its own, in the same tab: 5 attempts, 1, 2, 4, 8, and 16 seconds apart. The profile's tunnels come back with the session. The shell on the server is a new one, so work that must survive a drop belongs in tmux or screen; a startup command such as tmux attach puts you straight back into it. Closing the tab stops the attempts.
Can SSHive ask for Touch ID before connecting?+
Yes, if you turn it on. With Require Touch ID before decrypting passwords enabled in Settings (it is off by default), SSHive asks for your fingerprint before it decrypts a saved password or passphrase to open an SSH connection. On iPhone and iPad, saved passwords and keys live in the iOS Keychain, unlocked with Face ID, Touch ID or the device passcode.
Does SSHive run on iPhone and iPad?+
Yes. The iPhone and iPad app is written in Swift and covers SSH, SFTP, RDP and VNC. Broadcast, the MCP server, FTP and FTPS, Telnet, the serial console and the SOCKS5 proxy stay on the Mac. Profiles travel between devices with iCloud sync, a Pro option that is off by default, and one Pro purchase unlocks the Mac, iPhone and iPad together.

Related SSHive features

SFTP File Manager

Drag & drop file manager

SSH Tunnels

Local, remote & SOCKS5 proxy

Quick Commands

Reusable command library

Telnet client

RFC 854 terminal for legacy equipment

Serial console

Console cable to router, switch or board

AI Integration (MCP)

Claude & Cursor integration

Try SSH Terminal in SSHive