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