apps/docs/src/content/docs/en/ssh-access.mdx
import { TabItem, Tabs } from '@astrojs/starlight/components'
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.
Create an SSH access token directly from the Daytona Dashboard ↗.
Daytona generates a token and displays it in the modal. Copy the token and use it to connect to your sandbox.
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
You can create SSH access tokens programmatically. The token can then be used to connect manually:
<Tabs syncKey="language"> <TabItem label="Python" icon="seti:python">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
You can connect VS Code directly to your sandbox using the Remote SSH extension.
For more information, see the VS Code Remote SSH documentation ↗.
JetBrains Gateway provides remote development support for connecting to your sandbox.
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 SSH access tokens before expiry:
<Tabs syncKey="language"> <TabItem label="Python" icon="seti:python"># 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>'