> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirage.strukto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SSH

> Connect either Mirage SDK to a machine over SSH.

The machine only needs `sshd`. Details: [Python](/python/runtime/sandbox/ssh) ·
[TypeScript](/typescript/runtime/sandbox/ssh).

<Tabs>
  <Tab title="Python SDK" icon="https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?fit=max&auto=format&n=F9Lv_nTaj6By6crk&q=85&s=cf5b268d330f7db46ea5cf6083f309a1" width="110" height="110" data-path="images/python-logo.svg">
    ```bash theme={null}
    pip install 'mirage-ai[ssh]'
    ```

    ```python theme={null}
    from mirage.runtime.sandbox.ssh import SSHRuntime

    runtime = SSHRuntime(
        captures=["python3"],
        config={
            "host": "mybox",
            "username": "deploy",
            "identity_file": "~/.ssh/id_ed25519",
        },
    )
    ```
  </Tab>

  <Tab title="TypeScript SDK" icon="https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?fit=max&auto=format&n=F9Lv_nTaj6By6crk&q=85&s=63a620cb702b16103c53ea361a17504a" width="512" height="512" data-path="images/typescript-logo.svg">
    ```bash theme={null}
    pnpm add ssh2
    ```

    ```typescript theme={null}
    import { SSHRuntime } from '@struktoai/mirage-node'

    const runtime = new SSHRuntime({
      captures: ['python3'],
      config: {
        host: 'mybox',
        username: 'deploy',
        identityFile: '~/.ssh/id_ed25519',
      },
    })
    ```
  </Tab>
</Tabs>
