Skip to content
PortBay

A real SSH workspace, next to your projects

The projects you run locally ship somewhere. Save the server once and open a workspace: a real terminal, an SFTP browser with inline editing, and tunnels you start with a click.

The short answer

How do I connect to a remote database over an SSH tunnel?

Local port forwarding is the standard route: ssh -N -L 127.0.0.1:15432:db.internal:5432 deploy@bastion opens a listener on your Mac that carries traffic to the remote database through the bastion, and your client then connects to 127.0.0.1:15432 as though the database were local. The flags end up in shell history, and nothing tells you whether the forward survived the laptop sleeping. PortBay includes a full SSH client where that forward is a saved row you start and stop with a click, beside an interactive terminal (a real PTY, not a command builder), an SFTP browser with an inline editor that saves back over SFTP with ⌘S, and host process and listening-port panels. Key auth rides system OpenSSH, so your ~/.ssh/config, IdentityFile entries, agent and ProxyJump chains work unchanged, and private keys are never stored in PortBay's registry. Local forwards and one bastion hop are free.

Verified against the product, 2026-07-10.

In the app

Terminal, files and tunnels, one host card

SSH workspace — prod-1
prod-1 · [email protected] · connected · 18 ms
TerminalFilesTunnels

A saved host opens as a workspace: the terminal is a real PTY, the file browser edits over SFTP, and the tunnel row forwards a remote database to localhost.

How it works

From saved host to working session

  1. Save the host
  2. Open the terminal
  3. Forward what you need
  4. Open the database like a local one
  5. Edit and deploy

Save the host

Hostname or ~/.ssh/config alias, user, key or password. Aliases inherit everything OpenSSH already knows: ProxyCommand, certificates, agent keys, jump hosts.

Host prod-1 → [email protected]

Open the terminal

A real PTY on the host with your shell, not a wrapped command runner. The health probe shows latency and host-key trust before you type.

Forward what you need

Click a saved tunnel to pull a remote service onto your Mac. The equivalent ssh command stays visible for auditability.

ssh -N -L 127.0.0.1:15432:db.internal:5432 deploy@bastion

Open the database like a local one

After a forward is live, Open DB client registers the tunneled port as a database connection: the same client flow as a local instance, pointed at 127.0.0.1.

Edit and deploy

Fix a config file inline over SFTP with ⌘S. For heavier work PortBay generates the exact Remote-SSH, rsync, scp or git pull command instead of reimplementing those tools.

rsync -az --progress -e "ssh" ./dist deploy@prod-1:/var/www
Spec

SSH, tier by tier

CapabilityCommunityPro
Saved hosts, terminal, SFTP + inline editorIncludedIncluded
Local port forwards + one ProxyJump hopIncludedIncluded

The core remote-database workflow ships free.

Reverse forwardsIncluded
SOCKS proxy + multi-hop chainsIncluded
Keep-alive + auto-reconnectIncluded

Tunnels that survive idle connections and come back when the network drops.

Host snapshot, processes, ports, GPU panelsIncludedIncluded

Key material never enters PortBay's registry; key auth uses system OpenSSH, passwords live in the macOS keychain.

Without PortBay

The three-tab-and-a-sticky-note workflow

Without a workspace, every host is a pile of terminal tabs, remembered flags and a mental map of which forward runs where.

One workspace per host: the tunnel state is visible, the terminal is right there, and the file edit saves back over SFTP.

Questions

Asked before downloading

Does it replace my terminal and my SSH config?

PortBay's SSH workspace rides both. The workspace terminal is a real PTY, and key auth uses system OpenSSH, so ~/.ssh/config, IdentityFile entries, your agent, ProxyJump and provider-generated aliases keep working exactly as in Terminal. If ssh host-alias works there, PortBay can use the same alias.

Where does PortBay store SSH keys and passwords?

Private keys are never stored in PortBay's registry; the key path stays on system OpenSSH. The registry keeps only connection coordinates (host, port, user, forward type, jump host, optional key path). Password auth is stored in the macOS keychain under PortBay SSH.

Does PortBay's SSH workspace work with Teleport, Boundary or AWS SSM?

Yes, through the host-alias workflow. Let the provider's CLI write its OpenSSH config (tsh config, boundary connect ProxyCommand, aws ssm start-session ProxyCommand), then point PortBay's SSH host field at the resulting alias. PortBay layers the workspace and tunnels on top.

Can I reach a remote database through a PortBay SSH tunnel?

Reaching a remote database through an SSH tunnel ships free: save a local forward (with one bastion hop if needed), start it with a click, then Open DB client registers 127.0.0.1 with the forwarded port as a database connection and opens the built-in client, the same flow as a local instance.

What does the SSH workspace not do?

PortBay's SSH workspace is not a VPN replacement, cloud GPU provisioning or Slurm job submission. For heavy remote development it generates the exact Remote-SSH, rsync, scp or git commands for the tools that already handle every SSH edge case, instead of reimplementing them.

PortBay mascot — a friendly blue tugboat

Give your projects and your agents a real local home.

Download for macOS

Free & open source · macOS 11+ on Apple Silicon · Pro from $10/mo