# Remote servers as folders — SFTP, FTP and FTPS

> Connect to an SFTP, FTP or FTPS server and it becomes a folder: browse, preview, search, edit in place, transfer via the queue. An SSH shell shares the link.

- Canonical: https://cwdio.com/features/remote-sftp-ftp/
- Updated: 2026-08-15
- Product: Cwdio File Manager (cwdio) — https://cwdio.com

Open a server the way you open a drive. After **Go ▸ Connect to server…** an SFTP, FTP or FTPS host is a
folder in the panel — the same rows, the same keys, the same queue — and, for SFTP, a real shell on the
same connection is one command away.

## What it does

- **Browse.** A remote listing costs one round trip: SFTP and FTP listings carry full attributes, so cwdio
  never stats file by file. Previews, search, Properties sizes and the hex viewer all read through the
  connection like they read a local disk.
- **Transfer both ways, through the queue.** Local ⇄ remote — even remote ⇄ archive — runs through the same
  operation queue as everything else: progress, conflict prompts, per-file skip and retry, undo. A single
  file takes an **accelerated path** (concurrent SFTP chunks, direct FTP streams) and a folder tree fans out
  eight transfers at once, so a high-latency link is not a serial crawl. A verified or resumable copy uses the
  ordinary stream so the checksum and the offset are cwdio's own.
- **Mutate.** New folder, new file, rename, delete and move on the server, from the panel or the queue.
- **Edit in place.** <kbd>F4</kbd> on a remote text file opens it in the built-in editor and writes it back
  through the connection; a terminal editor runs in the SSH shell against the remote path.
- **SSH shell on the same connection.** **Go ▸ Open SSH terminal** opens a shell channel over the already
  authenticated SSH client — no new connection, no second prompt. It **follows the remote panel and the
  panel follows it** through the same OSC 7 sync the local terminal uses, and only when panel and shell are
  on the same server, so a Windows path never lands in an SSH prompt.
- **Saved servers.** Recent servers appear as chips in the connect dialog and under **Servers** in the
  Locations sidebar; a click reconnects silently from the encrypted vault; each can be edited or forgotten
  (which also clears its stored credential).

## How to use it

1. **Go ▸ Connect to server…** Pick SFTP, FTP or FTPS; enter host, port and user; choose password, key,
   agent or keyboard-interactive; optionally tick **Remember**.
2. The active panel opens on the server. Work in it: <kbd>F5</kbd>/<kbd>F6</kbd> to and from the other
   panel, <kbd>Space</kbd> to preview, <kbd>Ctrl+Shift+F</kbd> to search.
3. **Go ▸ Open SSH terminal** for a shell that starts in the folder you are looking at.
4. **Disconnect** from the panel's server chip when done; the saved profile stays for next time.

## Trust and credentials

- **Host keys, trust on first use.** The first connection records the server's SHA-256 fingerprint; a later
  connection whose key differs is refused *before* credentials are sent. FTPS pins the server certificate the
  same way — a changed certificate fails the connect with an explicit validation error rather than a vague
  "could not connect".
- **Secrets never touch the disk in the clear.** A remembered password or passphrase is stored through the
  operating system's own encryption; if the OS reports no encryption backend the vault refuses to persist.
  Session credentials otherwise live in memory only, which is what makes silent reconnects possible.
- **Nothing is uploaded anywhere.** Servers you add, and how you reach them, exist only on your machine.

## What it deliberately does not do

- FTP is serialised onto its single connection (the protocol is not safe for concurrent commands), so an
  FTP tree copy runs one file at a time rather than corrupting the session; SFTP fans out.
- Remote folders are not watched (there is no `fs.watch` for a server); a completed transfer reloads any
  panel showing the affected folder instead.
- No cloud-storage connectors yet: OneDrive, Google Drive and Dropbox appear as their synced local folders,
  not through their APIs.
- Not yet: an interactive fingerprint confirmation on first connect (today the first key is recorded and
  later changes are refused), a remote shell profile picker, and FTP terminals (FTP has no shell).

## Related

- [Terminal sync](/features/terminal-sync/) — the same follow-me model, local and remote.
- [Transfers and the queue](/features/transfers-and-queue/) — verify, resume, retry over any link.
- [The built-in text editor](/features/text-editor/) — remote files edited in place.

## Frequently asked questions

**How does cwdio authenticate to an SSH server?** With a password, a private key, an ssh-agent (SSH_AUTH_SOCK, Pageant, or the Windows OpenSSH agent pipe), and keyboard-interactive prompts. The connect dialog has a segmented control for the method. Ticking Remember stores the secret only when the OS provides real encryption; if it does not, cwdio refuses to store it rather than write it in the clear.

**What happens on the first connection to a server?** cwdio records the server's host-key fingerprint on first use (SHA-256, in known-hosts.json under its state folder) and, on every later connection, refuses to proceed if the key has changed — before any credential is sent. FTPS certificates are pinned the same way, because most FTPS servers are self-signed.

**What happens if the connection drops mid-transfer?** The queue pauses on the typed UNAVAILABLE error, reconnects from the session credentials, and the retry resumes. A dropped SSH link therefore costs a pause, not a restart from zero.

**Can I run commands on the server?** Yes. Go ▸ Open SSH terminal opens a real shell channel on the same authenticated SSH connection the SFTP panel uses — no second login. It follows the remote panel and the remote panel follows it, exactly like the local terminal. FTP has no shell, so that command connects an SFTP session first if you are not on one.
