SSH Access | Daytona
SSH Access
Daytona provides SSH access to your sandboxes using token-based authentication. This allows you to connect from local terminals, IDEs, and development tools without installing additional software.
Access from Dashboard
Create an SSH access token directly from the Daytona Dashboard ↗.
- Go to Sandboxes ↗
- Locate the sandbox you want to create an SSH access token for
- Click the sandbox options menu ( ⋮)
- Select Create SSH Access
- Set the expiration time (defaults to 60 minutes)
- Click Create
Daytona generates a token and displays it in the modal. Copy the token and use it to connect to your sandbox.
Access via CLI
Daytona provides a CLI command to create an SSH access token for a sandbox:
daytona create
When you create a sandbox, Daytona displays the SSH command automatically in the output:
Sandbox '<sandboxId>' created successfully
Connect via SSH: daytona ssh <sandboxId>
Open the Web Terminal: https://22222-<sandboxId>.proxy.daytona.work
To SSH into an existing sandbox, use the following command:
daytona ssh <sandbox> --expires 60
Access via token
You can create SSH access tokens programmatically. The token can then be used to connect manually:
from daytona import Daytona
daytona = Daytona()
sandbox = daytona.get("sandbox-abc123")
# Create SSH access token
ssh_access = sandbox.create_ssh_access(expires_in_minutes=60)
print(f"SSH Token: {ssh_access.token}")
import { Daytona } from '@daytona/sdk'
const daytona = new Daytona()
const sandbox = await daytona.get('sandbox-abc123')
// Create SSH access token
const sshAccess = await sandbox.createSshAccess(60)
console.log(`SSH Token: ${sshAccess.token}`)
require 'daytona'
daytona = Daytona::Daytona.new
sandbox = daytona.get('sandbox-abc123')
# Create SSH access token
ssh_access = sandbox.create_ssh_access(expires_in_minutes: 60)
puts "SSH Token: #{ssh_access.token}"
curl 'https://app.daytona.io/api/sandbox/{sandboxId}/ssh-access?expiresInMinutes=60' \
--request POST \
--header 'Authorization: Bearer <API_KEY>'
To connect to your sandbox, use the following command:
ssh <token>@ssh.app.daytona.io
Connect with VS Code
You can connect VS Code directly to your sandbox using the Remote SSH extension.
- Install the Remote Explorer extension ↗
- Add a new SSH connection
- When prompted for the SSH connection URL, paste the SSH command from above
For more information, see the VS Code Remote SSH documentation ↗.
Connect with JetBrains IDEs
JetBrains Gateway provides remote development support for connecting to your sandbox.
- Download JetBrains Gateway ↗
- Add a new connection
- When prompted for the SSH connection URL, paste the SSH command from above
- Select the IDE to install in your sandbox
Token management
Expiration
SSH access tokens expire automatically after 60 minutes. You can specify a custom expiration time when creating the token using the expires_in_minutes parameter.
Revoke token
Revoke SSH access tokens before expiry:
# Revoke specific SSH access token for the sandbox
sandbox.revoke_ssh_access(token="specific-token")
// Revoke specific SSH access token for the sandbox
await sandbox.revokeSshAccess('specific-token')
# Revoke specific SSH access token for the sandbox
sandbox.revoke_ssh_access(token: 'specific-token')
# Revoke specific SSH access token
curl 'https://app.daytona.io/api/sandbox/{sandboxId}/ssh-access?token=specific-token' \
--request DELETE \
--header 'Authorization: Bearer <API_KEY>'
# Revoke all SSH access for the sandbox
curl 'https://app.daytona.io/api/sandbox/{sandboxId}/ssh-access' \
--request DELETE \
--header 'Authorization: Bearer <API_KEY>'