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

# Self-service SFTP setup

This guide walks through configuring a customer-hosted SFTP server as an input
integration from the Console. It applies to customers, implementation
partners, and TechWolf Professional Services.

For the trust model and the role of each key, see
[How SFTP works](/integrations/reference/sftp/how-sftp-works) and [Security](/integrations/reference/sftp/security).

# Prerequisites

* A customer-hosted SFTP server that is reachable from TechWolf's egress IP
  addresses.
  <Note>
    TechWolf's egress IP addresses are available on request from your
    TechWolf contact.
  </Note>
* Admin access to install an SSH public key on the SFTP server (or, for legacy
  servers, a service-account password).
* The remote folder path(s) that TechWolf should pull files from.

# Steps

<Steps>
  <Step title="Open the SFTP Configuration page">
    In the Console, go to **Integrations → SFTP Configuration**
    (`/integrations/sftp-config`).

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/01-empty-state.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=6763f75b39fc0b577f4964b1c147d5e2" alt="Empty state of the SFTP Configuration page" width="1440" height="900" data-path="images/sftp-config/01-empty-state.png" />
  </Step>

  <Step title="Start a new connection">
    Click **Connect a server**. A drawer opens on the **Setup** tab.

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/02-drawer-create-empty.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=bff287f68184c69d75ad636bb8cf15bb" alt="Empty connection drawer on the Setup tab" width="1440" height="900" data-path="images/sftp-config/02-drawer-create-empty.png" />
  </Step>

  <Step title="Fill in identity and connection">
    Provide a **Name**, an optional **Description**, the **Host** and
    **Port** (default `22`), and the SFTP **Username** that TechWolf will
    log in as.

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/03-drawer-setup-filled.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=82d9d127174ba8482cc2c6034fee853c" alt="Setup tab with identity and connection fields filled in" width="1440" height="900" data-path="images/sftp-config/03-drawer-setup-filled.png" />
  </Step>

  <Step title="Choose authentication">
    Select **SSH key** (strongly recommended). TechWolf generates the
    keypair on the **Keys** tab. The private key never leaves TechWolf.
    See [How SFTP works: keys](/integrations/reference/sftp/how-sftp-works#keys-who-holds-what) for the
    keypair model.

    <Warning>
      Password authentication is significantly less secure than SSH-key
      authentication. The password is transmitted on every connection,
      must be rotated frequently, and offers no protection against
      credential reuse or leaks. Choose **Password** only if the SFTP
      server cannot accept public keys. See
      [Security: SSH key preferred over password](/integrations/reference/sftp/security#ssh-key-preferred-over-password).
    </Warning>
  </Step>

  <Step title="Create the connection">
    Click **Create connection**. The drawer flips to the **Keys** tab.

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/04-keys-tab-empty.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=9a8166598ce3563fd5d85be299c12ce0" alt="Empty Keys tab right after creating a connection" width="1440" height="900" data-path="images/sftp-config/04-keys-tab-empty.png" />
  </Step>

  <Step title="Generate a keypair and install the public key">
    Click **Generate keypair**. The public key is revealed once: copy it
    or click **Download**. Install it in the `authorized_keys` file of
    the configured user on the SFTP server.

    Multiple active keys per server are supported, which enables
    [key rotation without downtime](/integrations/reference/sftp/security#key-rotation-without-downtime).

    For background on what is actually being exchanged on each
    connection, see
    [How SFTP works: keys](/integrations/reference/sftp/how-sftp-works#keys-who-holds-what).

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/05-keys-public-revealed.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=f7f9da3887f6e82aab4231f63347fd82" alt="Keys tab showing the revealed public key" width="1440" height="900" data-path="images/sftp-config/05-keys-public-revealed.png" />
  </Step>

  <Step title="Verify and pin the host key">
    Return to the **Setup** tab and click **Test connection**. On
    success, the server's SHA256 host-key fingerprint is captured and
    locked automatically. Every later connection must match it.

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/11-test-connection-success.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=be6a810ff5fd0f9b1519df3de6233a9d" alt="Test connection succeeded with the host-key fingerprint locked" width="1440" height="900" data-path="images/sftp-config/11-test-connection-success.png" />
  </Step>

  <Step title="Configure folder mappings">
    Open the **Mappings** tab and click **Add mapping**.

    * **Remote folder on server**: the absolute path on the SFTP server,
      for example `/outbox/hr-feed`.
    * **TechWolf destination**: the subpath under TechWolf's file-based
      ingest prefix. File-based input integrations read from here.

    Each mapping can be toggled on or off independently.

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/06-mappings-add-draft.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=ffeaa982156e43d196a494e98dbb2409" alt="Adding a new mapping in the Mappings tab" width="1440" height="900" data-path="images/sftp-config/06-mappings-add-draft.png" />

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/07-mappings-saved.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=4f967855bf5169f7362b248921b059ab" alt="Mappings tab with a saved mapping" width="1440" height="900" data-path="images/sftp-config/07-mappings-saved.png" />
  </Step>

  <Step title="Browse the server (optional)">
    The **Browse** tab opens a live, read-only view of the SFTP server
    using the configured credentials. Useful for verifying a remote path
    before adding a mapping. Browsing never marks files as pulled.

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/13-browse-populated.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=08fccbe7faf577a48199857e4e7f479b" alt="Browse tab showing files inside /outbox/hr-feed" width="1440" height="900" data-path="images/sftp-config/13-browse-populated.png" />
  </Step>

  <Step title="Confirm on the overview">
    Close the drawer. The card on the overview shows the last pull time,
    the watched-paths count, and a health tag (Healthy, Idle, No keys,
    or Disabled).

    <img src="https://mintcdn.com/techwolf/1OOzBwAfiuFGjToG/images/sftp-config/10-overview-with-card.png?fit=max&auto=format&n=1OOzBwAfiuFGjToG&q=85&s=7bfa4622616f8abd4836632ef8b59f4f" alt="Overview with a connected SFTP server card" width="1440" height="900" data-path="images/sftp-config/10-overview-with-card.png" />
  </Step>
</Steps>
