FTP / SFTP / FTPS Connection
The file transfer protocol connections enable automations to upload, download, list, and manage files on remote servers. Three protocol variants are supported, each with its own connection type. They are used by the plugin-ftp and plugin-sftp plugins, which delegate to the ftp-connector and sftp-connector respectively.
Connection Types
| Protocol | Type Enum | Type ID | Entity Class | Description |
|---|---|---|---|---|
| FTP | FTP | ftp | FTPConnectionDetails | Plain File Transfer Protocol. Credentials sent in cleartext. |
| SFTP | SFTP | sftp | SFTPConnectionDetails | SSH File Transfer Protocol. Encrypted channel over SSH. |
| FTPS | FTPS | ftps | -- | FTP over TLS/SSL. FTP protocol with encryption layer. |
All three share the Protocol category.
FTP Mandatory Fields
| Field | Type | Required | Description |
|---|---|---|---|
host | String | Yes | FTP server hostname or IP address. |
port | String | Yes | FTP server port. Standard: 21. |
username | String | Yes | FTP login username. |
password | String | Yes | FTP login password. Encrypted at rest. |
FTP Advanced Fields
| Field | Type | Required | Description |
|---|---|---|---|
passiveMode | String | No | Set to true to use passive mode (recommended when crossing firewalls/NAT). Defaults to true. |
timeout | String | No | Connection timeout in milliseconds. |
SFTP Mandatory Fields
| Field | Type | Required | Description |
|---|---|---|---|
host | String | Yes | SFTP server hostname or IP address. |
port | String | Yes | SFTP server port. Standard: 22. |
username | String | Yes | SSH/SFTP login username. |
password | String | Yes | SSH/SFTP login password. Encrypted at rest. Alternatively, key-based auth can be configured in advanced fields. |
SFTP Advanced Fields
| Field | Type | Required | Description |
|---|---|---|---|
passiveMode | String | No | Not applicable to SFTP (SFTP runs over SSH and does not have an active/passive mode concept), but retained for configuration compatibility. |
privateKey | String | No | PEM-encoded private key for key-based authentication as an alternative to password. Encrypted at rest. |
passphrase | String | No | Passphrase for the private key if it is encrypted. Encrypted at rest. |
strictHostKeyChecking | String | No | Set to yes or no to control SSH host key verification. |
SFTP Bastion Host / Jump Server Fields
When the SFTP server is only reachable through a bastion host (jump server), enable useBastionHost and provide the bastion's connection details. The connector opens an SSH session to the bastion first, then tunnels through it to reach the SFTP host. These fields apply to SFTP only — FTP and FTPS do not support them.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
useBastionHost | Checkbox | No | false | Connect to the SFTP server through a bastion host. When enabled, the fields below apply. |
bastionHost | Variable | Conditional | -- | Hostname or IP address of the bastion / jump server. Required when useBastionHost is enabled. |
bastionPort | Number | Conditional | 22 | SSH port on the bastion host. Required when useBastionHost is enabled. |
bastionUsername | String | Conditional | -- | SSH login username on the bastion host. Required when useBastionHost is enabled. |
bastionAuthMethod | Dropdown | Conditional | password | How to authenticate to the bastion. One of password or privateKey. Defaults to password for SFTP. Required when useBastionHost is enabled. |
bastionPassword | Password | Conditional | -- | Password for the bastion user. Required when bastionAuthMethod is password. Encrypted at rest. |
bastionPrivateKey | Stored-file dropdown | Conditional | -- | Private key for the bastion, selected from a File uploaded to Global Configurator. Required when bastionAuthMethod is privateKey. |
For SFTP, bastionAuthMethod defaults to password. When you use privateKey instead, upload the key under Files and select it in bastionPrivateKey rather than pasting it inline.
FTPS Mandatory Fields
| Field | Type | Required | Description |
|---|---|---|---|
host | String | Yes | FTPS server hostname or IP address. |
port | String | Yes | Server port. 990 for implicit FTPS, 21 for explicit FTPS. |
username | String | Yes | FTPS login username. |
password | String | Yes | FTPS login password. Encrypted at rest. |
FTPS Advanced Fields
| Field | Type | Required | Description |
|---|---|---|---|
implicit | String | No | Set to true for implicit FTPS (port 990, TLS from the start). Set to false for explicit FTPS (port 21, AUTH TLS command). Defaults to false (explicit). |
passiveMode | String | No | Set to true to use passive mode. Defaults to true. |
trustAllCertificates | String | No | Set to true to skip server certificate validation. Not recommended for production. |
Protocol Comparison
| Feature | FTP | SFTP | FTPS |
|---|---|---|---|
| Encryption | None | Full (SSH) | TLS/SSL |
| Default port | 21 | 22 | 990 (implicit) / 21 (explicit) |
| Firewall friendliness | Poor (active mode) | Good (single port) | Moderate |
| Key-based auth | No | Yes | No (certificate-based) |
| Underlying protocol | FTP | SSH | FTP + TLS |
Prefer SFTP when possible. It provides encryption, uses a single port (firewall-friendly), and supports key-based authentication. Use FTP only for legacy systems that do not support SFTP or FTPS.
Friendly Example
| What you enter | Example |
|---|---|
| Connection name | Partner SFTP - Daily Files |
| Used for | Picking up files from a partner folder and sending processed files back |
| Main details to collect | Server address, port, username, password or key, and folder path |
| Best person to provide it | Partner technical contact or file transfer admin |
After it is saved, workflow builders select Partner SFTP - Daily Files in a node instead of entering these details again.
Troubleshooting
| Symptom | Likely Cause |
|---|---|
Connection refused on port 21 or 22 | Service not running, or firewall blocking the port |
530 Login authentication failed | Wrong username or password |
| Timeout during file listing (FTP) | Active mode is being used behind a NAT/firewall. Switch to passive mode. |
Host key verification failed (SFTP) | Server host key changed or strictHostKeyChecking is yes without a known host entry |
| SSL handshake failure (FTPS) | Certificate mismatch, or explicit vs. implicit mode misconfigured |