SSH Connection
The SSH connection type enables automations to execute commands on remote Linux/Unix servers over a secure shell. It is used by the plugin-ssh plugin, which delegates to the ssh-connector.
Connection Type
| Property | Value |
|---|---|
| Type enum | SSH |
| Type ID | ssh |
| Category | Protocol |
| Entity class | SSHConnectionDetails |
Friendly Example
| What you enter | Example |
|---|---|
| Connection name | Linux Server - Maintenance |
| Used for | Running approved maintenance commands on a server |
| Main details to collect | Host, port, username, password or private key, and allowed command scope |
| Best person to provide it | Server or infrastructure administrator |
After it is saved, workflow builders select Linux Server - Maintenance in a node instead of entering these details again.
Mandatory Fields
| Field | Type | Required | Description |
|---|---|---|---|
host | String | Yes | Hostname or IP address of the remote server. |
username | String | Yes | SSH login username on the remote server. |
Authentication Fields
You must provide one of the following authentication methods:
| Field | Type | Required | Description |
|---|---|---|---|
password | String | Conditional | SSH password for the user. Required for password-based authentication. Encrypted at rest. |
privateKey | Stored-file dropdown | Conditional | The private key, selected from a File already uploaded to Global Configurator — not pasted inline. Required for key-based authentication. Upload the key under Files first, then choose it here. |
The private key is no longer pasted directly into the connection. Upload the key file to Global Configurator's Files section, then select it from the privateKey dropdown. The platform resolves the selected file to its content at runtime — see file-reference resolution for how this works.
Advanced Fields
| Field | Type | Required | Description |
|---|---|---|---|
port | String | No | SSH port. Defaults to 22. |
passphrase | String | No | Passphrase for the private key, if the key is encrypted. Encrypted at rest. |
strictHostKeyChecking | String | No | Set to yes or no. Controls whether the connector verifies the server's host key. Defaults to no for convenience, but yes is recommended for production. |
timeout | String | No | Connection timeout in milliseconds. |
Bastion Host / Jump Server Fields
When the target server is only reachable through a bastion host (jump server), enable useBastionHost and provide the bastion's connection details. The connector first opens an SSH session to the bastion, then tunnels through it to reach the target host.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
useBastionHost | Checkbox | No | false | Connect to the target 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 | privateKey | How to authenticate to the bastion. One of privateKey or password. 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. |
The bastion authentication defaults to privateKey for SSH connections. Upload the bastion's private key under Files and select it in bastionPrivateKey, just like the target privateKey field.
Authentication Methods
Password Authentication
The simplest method. Provide the username and password fields. The remote server must have password authentication enabled in its SSH configuration (PasswordAuthentication yes in sshd_config).
Key-Based Authentication
More secure and recommended for production. Provide the username and privateKey fields.
To set up key-based authentication:
-
Generate an SSH key pair (if you do not already have one):
ssh-keygen -t ed25519 -C "qinfinite-automation" -f qinfinite_key -
Copy the public key to the remote server:
ssh-copy-id -i qinfinite_key.pub user@remote-hostOr manually append the public key content to
~/.ssh/authorized_keyson the server. -
Upload the private key as a File. Save the private key (the full PEM block, e.g.
-----BEGIN OPENSSH PRIVATE KEY-----…-----END OPENSSH PRIVATE KEY-----) to Global Configurator's Files section. -
Select the key file from the
privateKeydropdown in the connection configuration. The platform resolves it to the key content at runtime; the key is not pasted into the connection. -
If the key has a passphrase, provide it in the
passphraseadvanced field.
Troubleshooting
| Symptom | Likely Cause |
|---|---|
Connection refused | SSH service is not running on the host, or a firewall is blocking the port |
Auth fail with password | Wrong password, or password authentication is disabled on the server |
Auth fail with key | Public key not in authorized_keys, key format not supported, or wrong passphrase |
Connection timed out | Host is unreachable (DNS, network routing, or firewall issue) |
Host key verification failed | The server's host key changed (possible security issue) or strictHostKeyChecking is yes and the key is not in known hosts |