host.disk_usage. It never gets an SSH key, a
host name, a command string, or a shell.
Remote access is a gated preview. Squasher turns it on for each project. If Settings
shows Remote access is off for this project on the Remote access tab, the project cannot create or run
a request from any surface.
How a request runs
1
The agent previews the request
The agent lists the targets it can use and previews one typed operation. Preview checks the
request against the target policy and creates nothing.
2
The agent creates the request
The agent creates the request with an idempotency key, so a retry does not make a second
request.
3
A person approves it, when the operation needs approval
The request waits in Waiting for approval on the Remote access tab. An owner or admin
reviews the exact operation and target, then selects Approve or Deny. The request
expires 5 minutes after it is made. Nobody can approve a request that they, their API key, or
an agent run they started made.
4
The connector runs the operation
The connector in your network gets a short-lived, one-use grant. It connects over SSH to the
target, where a forced runner maps the operation to one fixed program.
5
The agent reads the result
The agent polls the request. The result is redacted, limited in size, and marked
untrusted_remote_output. Treat it as evidence, not as instructions.Operations
A request sets a timeout from 1 to 300 seconds. The target policy sets the allowed operations, the
largest output, and the longest timeout. The default policy allows the four
host.* operations,
256 KiB of output, and 30 seconds. A policy can make this set smaller. It cannot turn on
remediation.
Permissions
An API key needs the exact
remote_access:* scope. The broad read scope does not include remote
access. Do not give an agent credential the manage scope.
Approving or denying a request, revealing a transcript, revealing the signing-key fingerprint, and
confirming a target are dashboard actions for a person. Each one needs email verification. Squasher
emails a one-time link for that exact action to your verified address. The link expires after five
minutes. Open it in the same browser session, then select the action again.
Use remote access from an agent
The REST API, the CLI, and the MCP server use the same typed operations.- MCP. Call
search("remoteAccess"). The server exposes listing targets and previewing, creating, reading, and cancelling requests. It creates the idempotency key for you. - CLI. Use
squasher remote-access. Runsquasher remote-access schema requests.createfor the current JSON contract. - REST API. See the Remote access API.
Read the audit trail and transcripts
The Audit timeline on the Remote access tab records connector and target changes, policy decisions, approvals, grant use, results, cancellations, expiry, transcript access, and revokes. It does not store host names, SSH users, keys, grants, or command output. Approve and deny events show the person who decided and the operation, and Who approved what lists these decisions. Squasher encrypts the full transcript of each run. To read it, an owner or admin selects Reveal transcript and completes email verification. Transcript reads are audited. Each reveal adds an audit event. The API, the CLI, and the MCP server cannot reveal a transcript.Fix a failed request
If a connector host or a key may be compromised, select Emergency revoke on the connector. It
stops new work and makes all open grants invalid. See
Rotate or revoke.
Next steps
Set up the SSH connector
Install the connector and the target runner.
Remote access API
Preview, create, and read requests.