TroutTrout

Configure SSH flows

Broker SSH through Access Gate two ways: a network-path grant where the operator holds their own key, or a Remote Access proxy where the gate holds the credential and serves a browser session.

6 min read · Last updated 2026-06-24

SSH is the protocol for secure remote shell and file transfer. It runs on a wide range of equipment, from servers and network gear to the gateways and embedded controllers common in OT (a MOXA gateway in this example). The channel is already encrypted end to end, so the problem SSH presents on an OT network is rarely confidentiality. It is two other things: flat reachability (anything on the LAN can knock on port 22) and credential sprawl (devices secured with a single shared key or password that is hard to rotate). Access Gate addresses both, and it offers two distinct ways to do it.

How SSH security actually works

Three things are in play on every SSH session, and they fail independently:

  • Host key (server identity). On first connect, the client records the server's host key. This is what stops a man-in-the-middle, and it is also what produces the "host key has changed" warning operators are trained to click through. The gate, brokering the session, gives you one consistent identity to verify instead of a key per device.
  • User authentication. The user proves who they are with an SSH key (preferred) or a password (weaker, phishable, often shared). On OT gear this is frequently one shared credential baked into a runbook.
  • Encrypted channel. Negotiated automatically. This part is already solid, which is why SSH security work is about the first two, not the cipher.

The takeaway: SSH does not need help encrypting. It needs help with who can reach the port and who holds the credential. The two access models below split on exactly that second question.

Two ways to broker SSH (pick one)

Model A: network-path grant

The standard default-deny enclave model. You write an allow rule for the ssh protocol (port 22) from a principal to the asset, and the operator connects with their own SSH client and key. The gate enforces identity and policy and logs the session, but the SSH credential stays between the operator and the device.

  1. Add the device as an asset and place it in an enclave, see Protecting an asset with enclaves.
  2. Add an allow rule for ssh (or tcp:{custom_port} if SSH runs off-22), scoped to the user, group, or peer asset that should connect.
  3. The operator runs ssh user@<overlay-name-or-ip>. Nothing on the device changes.

Use Model A when operators are trusted to manage their own keys, when a machine-to-machine flow needs SSH (an automation host reaching a controller), or when you want the lightest path that still gives default-deny and logging. The limitation: the device credential is still out in the world, so revoking access means revoking the grant and, eventually, rotating the key.

Model B: Remote Access proxy

When the device's credential should never leave the gate, use Remote Access: the gate stores the SSH key or password, injects it at login, and serves the session in a browser tab. The operator authenticates as themselves and never holds the device credential.

1. Create the asset and its SSH service

Add the device as an asset and declare its SSH:22 service. Open the asset, click Edit Network, and enter the Remote Access Service information (the credentials Access Gate uses at login).

MOXA asset details
MOXA asset details

2. Create an enclave

Create an enclave containing the asset and the user or group you want to grant access to.

Remote Access enclave
Remote Access enclave

3. Enable Remote Access on the grant

To grant Remote Access, a proxy session that Access Gate maintains, select the Remote Access option. With this option, the credentials stored on the Access Gate are used at login, without being exposed to the end user. Then grant access.

Selecting the Remote Access option
Selecting the Remote Access option

On the user side

The user authenticates through an access screen and sees the Remote Access sessions they can activate.

Access granted with Remote Access permissions
Access granted with Remote Access permissions

Clicking the link opens a browser session with Remote Access to the target machine.

Remote Access browser session
Remote Access browser session

Credentials do not live on the operator's machine. The grant (creds=...) is injected server-side, so the person at the keyboard never holds the SSH key or password for the MOXA box. Revoking access is revoking a grant, not rotating a device credential. For the broader admin-session model (RDP, VNC, session recording), see Privileged Access Management.

Hardening notes

  • Prefer keys over passwords, and on the device disable password authentication once key access is proven. With Model B this is moot for the operator, the gate holds the credential.
  • SFTP and SCP ride the same grant. File transfer is SSH, so the same rule that grants shell also governs file movement. Scope it deliberately if an operator should get a shell but not bulk file copy.
  • Revocation differs by model. Model A revocation is immediate at the network layer but the device key lives on until rotated. Model B revocation removes the only path to the credential in one step.

Recap

You have two ways to broker SSH: a network-path grant (Model A) where the operator holds their own key and the gate enforces reachability and logging, or a Remote Access proxy (Model B) where the gate holds the credential and serves a browser session so the operator never touches the device key. Both run on default-deny enclaves, neither requires changing the device.

Reach for Model A when operators manage their own keys or for machine-to-machine SSH; reach for Model B when a shared or unrotable credential must never leave the gate.