A Linux Elastic VPS container on the Stack Harbor PaaS gives you the same shell access as any other container on the platform, with one important difference: you get full root access. SSH is the standard way to manage it. Windows VPS containers use RDP — covered separately.
This page covers the two SSH paths into a Linux VPS — the platform’s SSH Gate (recommended) and Web SSH (in-browser, zero configuration) — plus a brief note on direct access via public IP.
The two SSH paths
| Path | Where it runs | Configuration | When to use |
|---|---|---|---|
| Web SSH | In the dashboard, in your browser | None | Quick one-off commands, occasional admin, no local tooling. |
| SSH Gate | Your local terminal | Add your public SSH key to the dashboard | Day-to-day administration, automation, scp/sftp, rsync, editor sync. |
Both give the same shell and the same permissions. The SSH Gate is preferable for any sustained work — your local terminal history, scripts, and tools all work the same as with any other Linux server.
Web SSH
Open the dashboard, find the VPS environment, and click the Web SSH action on the VPS node. A terminal opens in a new tab, already authenticated. There is nothing to configure — the platform handles authentication via your dashboard session.
Web SSH is convenient but has the usual browser-terminal trade-offs: no ~/.ssh/config, copy/paste behaves slightly differently, and you cannot pipe data in from a local tool.
SSH Gate
The SSH Gate is a single SSH endpoint that fronts every environment in your account. You authenticate once with your SSH key pair and then connect to any container in any environment from your local terminal.
Setting it up the first time requires two steps:
- Generate an SSH key pair on your local machine if you don’t have one — see Generate an SSH key.
- Add the public key to the dashboard — see Add an SSH key. After the key is registered, the platform emails you the SSH connection string for the gate.
The connection string looks something like:
ssh -p 3022 <account-id>@gate.region.stackharbor.cloud
Connecting drops you into a small in-platform menu that lists every environment under your account; select one and you land at the shell of its entry-point container. From there, ssh between containers if the environment has more than one node.
Direct shell to a specific container
To skip the menu and connect directly to a specific container’s shell, the dashboard exposes a per-container connection string under the SSH action — copy it and use it as-is. It encodes the environment and node selectors in the SSH command.
Using SFTP, SCP, and rsync
The SSH Gate is a normal SSH endpoint, so all the usual SSH-aware tools work:
scp -P 3022 local-file <account-id>@gate.region.stackharbor.cloud:./remote-path
sftp -P 3022 <account-id>@gate.region.stackharbor.cloud
rsync -avz -e "ssh -p 3022" ./local-dir <account-id>@gate.region.stackharbor.cloud:./remote-dir
For multi-hop access (gate → container), use ProxyJump in ~/.ssh/config. The platform-issued connection string already encodes the right form.
Direct access via public IP
If you prefer to skip the gate entirely, attach a public IPv4 directly to the VPS node and SSH to it from any external host. This gives you a normal ssh root@<public-ip> flow with no platform-side indirection.
The trade-offs:
- The container is exposed directly to the public internet. You become responsible for the firewall, the SSH hardening, and
fail2ban-style brute-force protection. - Account-level SSH key management does not apply — keys must be added to
/root/.ssh/authorized_keysinside the container as usual. - No multi-environment menu, no single connection point — each VPS is reached separately.
The provided functionality and root permissions are identical to gate-based access; the only difference is the access surface.