SSH access is only available with the Daytona sandbox provider. Local, Docker, and exe.dev sandboxes do not support SSH access.
Connecting to a run’s sandbox
Usefabro ssh to connect to the Daytona sandbox from any completed or in-progress run:
--print to print the SSH command instead of connecting, or --ttl to set the credential expiry:
Enabling SSH access during fabro run
Pass the --ssh flag to fabro run to create SSH credentials at the start of the run:
ssh command in a separate terminal to connect.
Keeping the sandbox alive
By default, Daytona sandboxes are destroyed when the workflow finishes. To keep the sandbox running after the workflow completes — so you can continue debugging — combine--ssh with --preserve-sandbox:
--preserve-sandbox, the SSH session is terminated when the run ends and the sandbox is cleaned up.
You can also set auto_stop_interval in your run config to control how long an idle sandbox stays alive:
run.toml
What you can do over SSH
Once connected, you have a full shell inside the sandbox VM:- Inspect the working directory — Agent file changes are at
/home/daytona/workspace - Run commands — Execute tests, check logs, inspect process state
- Edit files — Make manual fixes while the workflow is paused at a human gate
- Debug failures — Reproduce and diagnose issues in the exact environment where they occurred
Credential lifetime
SSH credentials are temporary and expire after 60 minutes by default. Withfabro ssh, you can set a custom TTL with --ttl <MINUTES>. If your session expires, run fabro ssh again or start a new run with --ssh to get fresh credentials.
Limitations
- SSH access is Daytona-only. Passing
--sshwith other sandbox providers prints a warning and is ignored. - SSH access is currently available only from the CLI. The API server and web UI do not yet expose an SSH endpoint.