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

# nebius tunnel ssh-config

<div>
  <h2>Name</h2>

  <p style={{ paddingLeft: "4ch" }}>
    <code>nebius tunnel ssh-config</code>
  </p>

  <p style={{ paddingLeft: "7ch" }}>
    Install a managed block into \~/.ssh/config so that SSH to any tunnel route<br />
    hostname works with no per-tunnel setup:<br />

    <br />

    Host \*.tunnel.applications.\*.nebius.cloud<br />
    Port 443<br />
    ProxyCommand "\&lt;path to this binary\&gt;" tunnel connect --stdio %h:%p<br />
    ServerAliveInterval 30<br />

    <br />

    After one run, ssh, scp, sftp, and rsync -e ssh to<br />
    \&lt;service\&gt;-\&lt;weakid\&gt;.tunnel.applications.\&lt;region\&gt;.nebius.cloud just work: the<br />
    hostname itself carries everything the tunnel edge needs to route.<br />

    <br />

    A re-run replaces the managed block in place and never duplicates it.<br />
    The block goes to the top of the file because ssh takes the first obtained<br />
    value for each option, so an earlier Host or Match block would shadow it.
  </p>
</div>

<div>
  <h2>Synopsis</h2>

  <p style={{ paddingLeft: "4ch" }}>
    ```
    nebius tunnel ssh-config
      --print
      --remove
    ```
  </p>
</div>

<div>
  <h2>Examples</h2>

  <p style={{ paddingLeft: "4ch" }}>
    **Install the block once, then SSH through the tunnel**

    ```
    $ nebius tunnel ssh-config
    $ ssh ubuntu@ssh-hy3wnb3wstpk7dz.tunnel.applications.eu-north1.nebius.cloud
    ```

    **Only print the block and change nothing**

    ```
    $ nebius tunnel ssh-config --print
    ```

    **Remove the block; the rest of the file stays the same**

    ```
    $ nebius tunnel ssh-config --remove
    ```
  </p>
</div>

<div>
  <h2>Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--print` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Only print the ssh\_config block to stdout.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--remove` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Remove the managed block.
    </p>
  </div>
</div>

<div>
  <h2>Global Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-h, --help` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Show this message.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-p, --profile` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set a profile for interacting with the cloud.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--format` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Output format. Supported values: yaml|json|jsonpath|table|text.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-f, --file` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Input file. For 'update' commands automatically set --full=true.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-c, --config` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Provide path to config file.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--debug` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Enable debug logs.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-I, --impersonate-service-account-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Impersonate into the service account and use its token for a command.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--color` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Enable colored output.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-browser` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Do not open browser automatically on auth.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--insecure` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Disable transport security.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--auth-timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for the request including authentication process, default is 15m0s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--per-retry-timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for each retry attempt, default is 20s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--retries` (uint)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the number of retry attempts, 1 is disable retries, default is 3.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for the main request, default is 1m0s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-check-update` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Suppress check for updates.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-progress` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Suppress progress indicators and spinners.
    </p>
  </div>
</div>

*Auto generated on 8-Sep-2026*
