Step-by-step guides for SSH on macOS
How to VNC from a Mac to a Linux desktop
Built-in VNC viewer, full RFB protocol support, works with TightVNC/RealVNC/x11vnc/noVNC, and no separate WebSocket relay needed.
Estimated time: 4 minutes
VNC is the cross-platform remote desktop protocol everyone uses on Linux. Whether you're managing a Raspberry Pi's desktop, the noVNC console of a Proxmox VM, or a headless Linux box you want to occasionally see graphically, VNC is the answer. SSHive's built-in VNC viewer uses noVNC under the hood with an embedded WebSocket proxy, meaning you connect directly to a TCP VNC server without setting up websockify or a separate relay.
Step-by-step
- 1
Install a VNC server on the remote
Raspberry Pi: `sudo apt install realvnc-vnc-server`, enable via `raspi-config` → Interface Options → VNC. Ubuntu/Debian desktop: `sudo apt install x11vnc`, run `x11vnc -auth /var/lib/gdm3/auth-for-gdm-* -display :0 -forever -loop`. Set a VNC password with `x11vnc -storepasswd`. Verify it's listening: `ss -tlnp | grep 5900` (5900 = display :0, 5901 = :1, etc.). - 2
Create the VNC profile in SSHive (Pro required)
Sidebar → +. In the type selector at the top, pick **VNC**, port flips to `5900`. Fill Name, Host, Port, Password. That is the entire VNC form, no domain, no quality preset, no resolution dropdown like RDP. VNC is **Pro-only**: in Free, picking VNC triggers the upgrade modal at save (the check happens in `LicenseService.check('session.vnc')`). All the protocol knobs (encodings, quality, compression) are negotiated automatically. - 3
What runs under the hood, and what is intentionally not exposed
SSHive's VNC client is **noVNC** running RFB 3.x in the renderer, with a WebSocket proxy on a dynamic 127.0.0.1 port (localhost-only, never reachable from the network). Encodings auto-negotiate: Tight, Hextile, RRE, Raw, ZRLE, CopyRect, DesktopSize. Authentication uses the standard RFB password. There is no TLS/RFB-encryption toggle in the UI, encryption is meant to come from the SSH tunnel below (see next step). DesktopSize is enabled, so resizing the SSHive window resizes the remote desktop. - 4
Tunnel VNC through SSH (two profiles, no broker logic)
There is **no jump-host field on the VNC profile itself**, same model as RDP. (1) Create your SSH profile, add a Local forward `15900 → localhost:5900` under Advanced. (2) Create the VNC profile pointing at `localhost:15900`. Connect SSH first, then VNC. Plain VNC password authentication is weak; the SSH tunnel is what actually keeps the traffic away from anyone on the network.
Frequently asked questions
Will SSHive work with Apple Screen Sharing on a Mac?+
Yes, Apple's vncserver speaks RFB, port 5900. Enable on the target Mac: System Settings → General → Sharing → Screen Sharing. SSHive can connect, though for Apple-to-Apple, the built-in client is still richer (audio, drag-drop).
Related SSHive features
Common use cases
Connect to a Raspberry Pi from your Mac
Everything you need to manage a Pi from macOS, SSH, SFTP, VNC, and tunnels, in one native app.
Proxmox VE management from your Mac
SSH to PVE nodes, noVNC console to guest VMs, SFTP for ISO uploads, Proxmox workflows in one native macOS window.
Manage your home server from your Mac
One app for everything in your home lab, SSH, SFTP, VNC, and secure tunnels for Plex, Home Assistant, Nextcloud, and more.
Try SSHive Free for macOS
Get the all-in-one SSH, SFTP, RDP and VNC client for Mac. Free download, no signup required.
Download SSHive Free