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

# SSH Server

The SSH Server connection lets your agents connect to remote Linux or Unix servers and execute shell commands over SSH. Provide your server credentials, and Duvo handles the connection so agents can retrieve data, run scripts, and check system health without manual logins.

## Setup

<Steps>
  <Step title="Confirm prerequisites" icon="circle-check">
    <Check>An SSH-accessible server (Linux, Unix, or any host running an SSH daemon).</Check>
    <Check>A user account on the target server with the permissions your agent needs.</Check>
    <Check>Either a password or a PEM-encoded private key for authentication.</Check>
    <Check>If connecting through a bastion host, credentials for the jump server (these can differ from the target server's credentials).</Check>
  </Step>

  <Step title="Grant the required permissions" icon="key">
    * The SSH user account must have shell access on the target server.
    * Grant only the minimum permissions the agent needs. Avoid using root or highly privileged accounts unless the workflow specifically requires it.
    * If using key-based authentication, the public key must be added to the user's `authorized_keys` file on the server.

    <Warning>
      The SSH user determines exactly what the agent can do on the server. Scope it to the minimum permissions the workflow needs, and avoid root or highly privileged accounts unless they are specifically required.
    </Warning>
  </Step>

  <Step title="Add the connection in Duvo" icon="plug">
    On the [Connections page](https://app.duvo.ai/integrations), open SSH Server and fill in these fields:

    <ParamField body="Host" type="string" required>
      Hostname or IP address of the target server.
    </ParamField>

    <ParamField body="Username" type="string" required>
      SSH user account to authenticate with.
    </ParamField>

    <ParamField body="Port" type="number">
      SSH port on the target server (defaults to 22).
    </ParamField>

    <ParamField body="Password" type="string">
      Password for the user account (provide either password or private key).
    </ParamField>

    <ParamField body="Private Key" type="PEM">
      PEM-encoded private key (provide either password or private key).
    </ParamField>

    <ParamField body="Private Key Passphrase" type="string">
      Passphrase to decrypt an encrypted private key.
    </ParamField>

    <ParamField body="Jump Host" type="string">
      Hostname or IP of a bastion/jump server for two-hop connections.
    </ParamField>

    <ParamField body="Jump Port" type="number">
      SSH port on the jump host (defaults to 22).
    </ParamField>

    <ParamField body="Jump Username" type="string">
      User account on the jump host (required when a jump host is set).
    </ParamField>

    <ParamField body="Jump Password" type="string">
      Password for the jump host (provide either password or private key).
    </ParamField>

    <ParamField body="Jump Private Key" type="PEM">
      PEM-encoded private key for the jump host.
    </ParamField>

    <ParamField body="Jump Private Key Passphrase" type="string">
      Passphrase to decrypt the jump host private key.
    </ParamField>
  </Step>
</Steps>

## Capabilities

* **Execute shell commands** — Run any shell command on the remote server and capture stdout, stderr, and exit codes.
* **Read server data** — Retrieve logs, configuration files, and system status information directly from the source.
* **Trigger remote processes** — Start scripts, batch jobs, or server-side operations as part of an end-to-end workflow.
* **Check system state** — Query running processes, disk usage, service availability, or any other system metric.
* **Connect through bastion hosts** — Reach servers behind firewalls by routing through a jump host with two-hop SSH tunneling.

## Key Benefits

* **Replace manual SSH sessions** — Governed, repeatable automation instead of ad-hoc terminal logins.
* **Access data at the source** — Pull logs, configs, and system metrics directly from servers without intermediate exports.
* **Flexible server coverage** — Works with any server that exposes an SSH endpoint, regardless of operating system or cloud provider.
* **Secure credential handling** — Supports both password and key-based authentication, with optional passphrase protection for private keys.
* **Bastion host support** — Reach servers in private networks through jump hosts without exposing them directly.

## Works Well With

<CardGroup cols={3}>
  <Card title="Slack" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/slack.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=8a64bdd1af39e903923e4a273b4a4618" href="/user-guide/connections/available-connections/slack" width="512" height="512" data-path="images/connections/slack.svg">
    Post command output, log excerpts, or system alerts to team channels after SSH commands run.
  </Card>

  <Card title="Microsoft Teams" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/teams.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=6402a90678b560d0b0a4fc3b02c0d3e0" href="/user-guide/connections/available-connections/microsoft-teams" width="2229" height="2073" data-path="images/connections/teams.svg">
    Post command output, log excerpts, or system alerts to team channels after SSH commands run.
  </Card>

  <Card title="Google Sheets" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/google-sheets.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=0ef8d55e05c34e7a4a618933bdf0ceb3" href="/user-guide/connections/available-connections/google-sheets" width="24" height="24" data-path="images/connections/google-sheets.svg">
    Write retrieved server data into spreadsheets for tracking, analysis, or reporting.
  </Card>

  <Card title="Microsoft Excel" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/excel.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=986599d60d09acee47293fda2b62df99" href="/user-guide/connections/available-connections/microsoft-excel" width="2290" height="2130" data-path="images/connections/excel.svg">
    Write retrieved server data into workbooks for tracking, analysis, or reporting.
  </Card>

  <Card title="Gmail" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/gmail.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=ad4e229283f3fe2f26c0f96a49f28e13" href="/user-guide/connections/available-connections/gmail" width="88" height="66" data-path="images/connections/gmail.svg">
    Send automated notifications with server output or status summaries via email.
  </Card>

  <Card title="Microsoft Outlook" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/outlook.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=e29aeb65c8cffce1cd3c83b81289b71f" href="/user-guide/connections/available-connections/microsoft-outlook" width="1831" height="1703" data-path="images/connections/outlook.svg">
    Send automated notifications with server output or status summaries via email.
  </Card>
</CardGroup>
