SFTP & FTP
Two remote drivers for reaching another server. They look similar in the editor and are not equivalent — prefer SFTP wherever you have the choice.
SFTP (SSH)
The most capable remote option: file transfer over an SSH connection, encrypted end to end, with a real filesystem underneath.
Fields
| Field | Notes |
|---|---|
| Host, Port | Port defaults to 22 |
| Username | Required |
| Password | Leave blank if you are using a key |
| Private key | A full OpenSSH private key, header and footer lines included |
| Key passphrase | If the key has one |
| Remote folder | The base path on that host, e.g. /var/www/html |
| Host key fingerprint | Optional but recommended. Test Connection fills it in |
| Timeout | Seconds; defaults to 20 |
Key authentication
Paste the private key — the whole block, from -----BEGIN OPENSSH PRIVATE KEY----- to the matching end line — and supply its passphrase if it has one. Leave the Password field blank.
The key is stored encrypted, keyed off your Joomla site secret, and is never returned to the browser.
Prefer a key to a password: it is not guessable, it can be issued per-site and revoked by removing one line from the remote authorized_keys, and it survives a password rotation on the account.
Pinning the host key
The Host key fingerprint field is optional and worth filling in. Click Test Connection and it is populated for you from the server's actual key.
Pinned, a later connection presenting a different host key is refused. Unpinned, it is trusted — which is exactly the gap a man-in-the-middle needs. The cost of pinning is that you must clear the field deliberately when the remote server legitimately rekeys.
Requirements
The phpseclib library, which ships with Joomla. If it is missing from your install, the SFTP type is greyed out in the storage editor with that reason shown, rather than failing at connect time.
No PHP extension and no shell access are needed.
FTP / FTPS
A classic FTP account, optionally wrapped in explicit TLS.
Fields
| Field | Notes |
|---|---|
| Host, Port | Port defaults to 21 |
| Username, Password | Required |
| Remote folder | The base path |
| Use FTPS (explicit TLS) | Off by default — turn it on wherever the server supports it |
| Passive mode | On by default. Leave it on unless the server requires active mode |
| UTF-8 filenames | On by default |
| Timeout | Seconds; defaults to 30 |
Turn FTPS on
Plain FTP sends the username, the password and every byte of every file in clear text. Anyone on the network path reads all of it.
Tick Use FTPS (explicit TLS) if the server supports it. If it does not, and you can reach the same files over SFTP, use SFTP instead. If neither is available, treat the credential as compromised-by-design: give it the narrowest possible scope, use it for nothing sensitive, and do not reuse the password anywhere.
Note that FTPS requires a certificate the server trusts. A self-signed certificate will be rejected.
Passive mode
Leave it on. Passive mode has the client open the data connection, which works through NAT and firewalls; active mode has the server connect back to your web server, which most modern networks block. Turn it off only if the remote specifically requires active mode.
Requirements
PHP's ftp extension. Without it the type is greyed out with that reason shown. FTPS additionally needs the SSL support built into that extension.
Choosing between them
| SFTP | FTP | FTPS | |
|---|---|---|---|
| Credentials encrypted | Yes | No | Yes |
| File contents encrypted | Yes | No | Yes |
| Key authentication | Yes | No | No |
| Host identity verifiable | Yes, by fingerprint | No | By certificate |
| Firewall-friendly | One port | Two, plus passive range | Two, plus passive range |
| Needs a PHP extension | No | Yes (ftp) |
Yes (ftp with SSL) |
Use SFTP. Use FTPS where SFTP is not offered. Use plain FTP only where nothing else exists, and scope it tightly.
Capabilities
Both drivers have real directories and server-side rename. SFTP additionally supports byte-range reads — so media scrubs in the lightbox — POSIX permission bits, and symlinks, which it guards against escaping the granted root. FTP's support for ranges and permissions depends on the server.
Full capability model: Storage.
Practical notes
- One storage, several places. An account with three folders worth naming wants one storage and three places — the credential stays in one row and rotates in one edit.
- Raise the timeout for large transfers. The defaults suit browsing, not multi-gigabyte uploads.
- The remote folder bounds the drive. Everything on this storage is addressed beneath it, so setting it as tightly as the job allows is a cheap second layer under profile roots.
- Cross-drive moves round-trip through your server. Moving between two remote drives pulls the data in and pushes it back out. See Uploads & downloads.